Submission #31799

#TimeUsernameProblemLanguageResultExecution timeMemory
31799top34051Cezar (COCI16_cezar)C++14
0 / 100
0 ms2024 KiB
#include<bits/stdc++.h> using namespace std; int n; bool vis[30]; string s[105], p[105]; vector<int> from[30], to[30]; vector<int> topo; void dfs(int x) { int i; vis[x] = 1; for(i=0;i<from[x].size();i++) if(!vis[from[x][i]]) dfs(from[x][i]); topo.push_back(x); } void dfs2(int x) { int i; vis[x] = 1; for(i=0;i<to[x].size();i++) if(!vis[to[x][i]]) dfs2(to[x][i]); } main() { int i,j,x; scanf("%d",&n); for(i=1;i<=n;i++) cin >> s[i]; for(i=1;i<=n;i++) scanf("%d",&x), p[x] = s[i]; for(x=1;x<n;x++) { i = j = 0; while(i<p[x].size() && j<p[x+1].size()) { if(p[x][i]!=p[x+1][j]) { to[p[x][i]-'a'].push_back(p[x+1][j]-'a'); from[p[x+1][j]-'a'].push_back(p[x][i]-'a'); // printf("%c -> %c\n",p[x][i],p[x+1][j]); break; } i++; j++; } } memset(vis,0,sizeof(vis)); for(x=0;x<26;x++) if(!vis[x]) dfs(x); memset(vis,0,sizeof(vis)); for(i=25;i>=0;i--) { x = topo[i]; if(vis[x]) { printf("NE"); return 0; } dfs2(x); } printf("DA\n"); for(i=0;i<26;i++) printf("%c",topo[i]+'a'); }

Compilation message (stderr)

cezar.cpp: In function 'void dfs(int)':
cezar.cpp:11:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(i=0;i<from[x].size();i++) if(!vis[from[x][i]]) dfs(from[x][i]);
              ^
cezar.cpp: In function 'void dfs2(int)':
cezar.cpp:17:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(i=0;i<to[x].size();i++) if(!vis[to[x][i]]) dfs2(to[x][i]);
              ^
cezar.cpp: At global scope:
cezar.cpp:19:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
cezar.cpp: In function 'int main()':
cezar.cpp:26:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while(i<p[x].size() && j<p[x+1].size()) {
                ^
cezar.cpp:26:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         while(i<p[x].size() && j<p[x+1].size()) {
                                 ^
cezar.cpp:21:19: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d",&n);
                   ^
cezar.cpp:23:50: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     for(i=1;i<=n;i++) scanf("%d",&x), p[x] = s[i];
                                                  ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...