# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
83386 | 2018-11-07T13:29:02 Z | wjoao | Cezar (COCI16_cezar) | C++11 | 3 ms | 620 KB |
#include<bits/stdc++.h> #define maxn 500 using namespace std; string entrada[maxn], ordenado[maxn]; int n, ord[maxn], grau[maxn], atual = 'a', mark[maxn], impossivel; char encryption[maxn]; vector<int> g[maxn]; void dfs(int v, int cor){ //cout << "Dfs: " << (char)v << " cor: " << (char)cor << endl; mark[v] = cor; for(int i = 0; i < g[v].size(); i++){ int u = g[v][i]; if(mark[u] == cor){ impossivel = true; return; }else if(mark[u] == 0){ dfs(u, cor); } } encryption[v]=atual++; } int main(){ cin >> n; for(int i = 0; i < n; i++ ) cin >> entrada[i]; for(int i = 0; i < n; i++ ){ cin >> ord[i]; ord[i]--; ordenado[i] = entrada[ord[i]]; } //for(int i = 0; i < n; i++){ // cout << ordenado[i] << endl; //} for(int i = 1; i < n; i++){ int j = 0; while( j < ordenado[i].size() && j < ordenado[i-1].size() && ordenado[i][j] == ordenado[i-1][j] ) j++; if( j < ordenado[i].size() && j < ordenado[i-1].size()){ g[ordenado[i][j]].push_back(ordenado[i-1][j]); //cout << (char)ordenado[i][j] << " Tem que ser maior que: " << (char)ordenado[i-1][j] << endl; } } for(int i = 'a'; i <= 'z'; i++){ if(mark[i] == 0) dfs(i, i); } if(impossivel){ cout << "NE" << endl; }else{ cout << "DA" << endl; for(int i = 'a'; i <= 'z'; i++){ cout << encryption[i]; }cout << endl; } return 0; } //b->d->c /* 1 - bbb 2 - ccc c->b 2 - ccc => 3 - ddd d->c 3 - ddd 1 - bbb b->d 1 - ccc b->c 2 - ddd => c->d 3 - bbb d->b 2 3 1 */
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 376 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 380 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 580 KB | Output is correct |
2 | Incorrect | 2 ms | 580 KB | Output isn't correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 580 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 580 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 580 KB | Output is correct |
2 | Incorrect | 2 ms | 580 KB | Output isn't correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 620 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 620 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 620 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 620 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |