Submission #921347
Source Code Expand
#include<bits/stdc++.h> using namespace std; string s[100005]; char aa[400005]; struct node{ int sz,ind; bool isend; node* a[26]; node(){ sz=ind=0; isend=0; for(int i=0;i<26;++i)a[i]=this; } void insrt(int i,int j=0){ ++sz; ind=j; if(s[i].size()==j){ isend=1; return; } int c=s[i][j]-'a'; if(a[c]==this)a[c]=new node; a[c]->insrt(i,j+1); } bool need(){ int x=isend; for(int i=0;i<26;++i)x+=(a[i]!=this); return x==1; } node *nxt(){ if(isend)return this; for(int i=0;i<26;++i)if(a[i]!=this)return a[i]; } void reduce() { for(int i=0;i<26;++i){ if(a[i]==this)continue; a[i]->reduce(); if(a[i]->need())a[i]=a[i]->nxt(); } } void dfs() { cout<<sz<<" "<<ind<<endl; for(int i=0;i<26;++i){ if(a[i]==this)continue; cout<<char('a'+i)<<" "; a[i]->dfs(); cout<<endl<<endl; } } int query(int i){ if(s[i].size()<=ind)return 1; int ret=isend; for(int j=0;j<26;++j){ int c=aa[j]-'a'; if(aa[j]==s[i][ind])return ret+a[c]->query(i); if(a[c]!=this)ret+=a[c]->sz; } return ret; } }*root; int main() { int n; cin>>n; root =new node; for(int i=1;i<=n;++i){ scanf("%s",aa); s[i]=aa; root->insrt(i,0); } root->reduce(); int q; // root->dfs(); cin>>q; int x; while(q--){ scanf("%d %s",&x,aa); printf("%d\n",root->query(x)); } }
Submission Info
Submission Time | |
---|---|
Task | E - Lexicographical disorder |
User | Zain |
Language | C++14 (GCC 5.4.1) |
Score | 1100 |
Code Size | 1797 Byte |
Status | AC |
Exec Time | 2345 ms |
Memory | 108928 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:71:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%s",aa); ^ ./Main.cpp:81:29: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] scanf("%d %s",&x,aa); ^
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1100 / 1100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | s1.txt, s2.txt |
All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, s1.txt, s2.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01.txt | AC | 143 ms | 29696 KB |
02.txt | AC | 143 ms | 29696 KB |
03.txt | AC | 147 ms | 29696 KB |
04.txt | AC | 147 ms | 29696 KB |
05.txt | AC | 223 ms | 72576 KB |
06.txt | AC | 221 ms | 93952 KB |
07.txt | AC | 214 ms | 95232 KB |
08.txt | AC | 207 ms | 95488 KB |
09.txt | AC | 205 ms | 95872 KB |
10.txt | AC | 203 ms | 98816 KB |
11.txt | AC | 130 ms | 10112 KB |
12.txt | AC | 123 ms | 13824 KB |
13.txt | AC | 130 ms | 18176 KB |
14.txt | AC | 246 ms | 89600 KB |
15.txt | AC | 248 ms | 95744 KB |
16.txt | AC | 211 ms | 98816 KB |
17.txt | AC | 215 ms | 108928 KB |
18.txt | AC | 1947 ms | 2048 KB |
19.txt | AC | 1952 ms | 2048 KB |
20.txt | AC | 2158 ms | 2304 KB |
21.txt | AC | 2143 ms | 2304 KB |
22.txt | AC | 2345 ms | 2304 KB |
23.txt | AC | 140 ms | 18816 KB |
24.txt | AC | 131 ms | 10240 KB |
25.txt | AC | 125 ms | 13952 KB |
26.txt | AC | 1802 ms | 2048 KB |
27.txt | AC | 112 ms | 11136 KB |
28.txt | AC | 108 ms | 14976 KB |
29.txt | AC | 102 ms | 14464 KB |
30.txt | AC | 130 ms | 23040 KB |
31.txt | AC | 118 ms | 30336 KB |
32.txt | AC | 96 ms | 21248 KB |
33.txt | AC | 110 ms | 36096 KB |
34.txt | AC | 104 ms | 30848 KB |
35.txt | AC | 118 ms | 39680 KB |
36.txt | AC | 153 ms | 34048 KB |
37.txt | AC | 141 ms | 55296 KB |
38.txt | AC | 141 ms | 55296 KB |
39.txt | AC | 4 ms | 1024 KB |
40.txt | AC | 4 ms | 1024 KB |
s1.txt | AC | 4 ms | 1024 KB |
s2.txt | AC | 4 ms | 1024 KB |