# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1023892 | 2024-07-15T08:52:40 Z | Double_Slash | Cezar (COCI16_cezar) | C++17 | 1 ms | 496 KB |
#include <bits/stdc++.h> #define debug(x) [&] { auto _x = x; cerr << __LINE__ << ": " << #x << " = " << _x << endl; return _x; }() using namespace std; int n, deg[26], ans[26]; string raw[101], words[101]; vector<int> adj[26]; bool comp(int i, int j) { for (int k = 0; k < words[i].size(); ++k) { if (k == words[j].size()) return false; if (words[i][k] != words[j][k]) { adj[words[i][k] - 'a'].emplace_back(words[j][k] - 'a'); deg[words[j][k] - 'a']++; break; } } return true; } bool solve() { for (int i = 1; i < n; ++i) { for (int j = i + 1; j <= n; ++j) { if (not comp(i, j)) return false; } } queue<int> q; for (int i = 0; i < 26; ++i) { if (not deg[i]) q.emplace(i); } int idx = 0; while (not q.empty()) { int i = q.front(); q.pop(); ans[i] = idx++; for (int j: adj[i]) { if (not --deg[j]) q.emplace(j); } } if (idx < 26) return false; cout << "DA\n"; for (int i = 0; i < 26; ++i) cout << (char) ('a' + ans[i]); cout << endl; return true; } int main() { cin >> n; for (int i = 1; i <= n; ++i) cin >> raw[i]; for (int i = 1; i <= n; ++i) { int j; cin >> j; words[i] = raw[j]; } if (not solve()) cout << "NE\n"; else { for (int i = 1; i <= n; ++i) { for (char &c: words[i]) { c = ans[c - 'a'] + 'a'; } if (i > 1) assert(words[i] > words[i - 1]); } } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 348 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 344 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 344 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 496 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 344 KB | Output is correct |
2 | Correct | 1 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 348 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 348 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1 ms | 344 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |