# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
648889 | 2022-10-08T16:40:37 Z | Spade1 | Type Printer (IOI08_printer) | C++14 | 51 ms | 6824 KB |
#include<bits/stdc++.h> #define pii pair<int, int> #define pll pair<long long, long long> #define ll long long #define ld long double #define st first #define nd second #define pb push_back #define INF INT_MAX using namespace std; const int N = 3e5 + 10; vector<string> v, v2; vector<char> ans; int pre[N]; void solve() { int n; cin >> n; for (int i = 0; i < n; ++i) { string s; cin >> s; v.pb(s); } sort(v.begin(), v.end()); int l = 0, mx = 0; for (int i = 0; i < n; ++i) if (v[i].size() > mx) l = i, mx = v[i].size(); for (int i = 0; i < n; ++i) for (int j = 0; j < v[i].size(); ++j) if (v[i][j] == v[l][j]) pre[i]++; else break; for (int j = 0; j <= 20; ++j) { for (int i = 0; i < n; ++i) { if (pre[i] == j) v2.pb(v[i]); } } for (int i = 1; i < n; ++i) { pre[i] = 0; for (int j = 0; j < min(v2[i].size(), v2[i-1].size()); ++j) { if (v2[i][j] == v2[i-1][j]) pre[i]++; else break; } } for (auto i : v2[0]) ans.pb(i); ans.pb('P'); for (int i = 1; i < n; ++i) { for (int j = pre[i]; j < v2[i-1].size(); ++j) ans.pb('-'); for (int j = pre[i]; j < v2[i].size(); ++j) ans.pb(v2[i][j]); ans.pb('P'); } cout << ans.size() << '\n'; for (auto i : ans) cout << i << '\n'; } int main() { ios_base::sync_with_stdio(0); cin.tie(NULL); int t = 1; // cin >> t; while (t--) { solve(); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Correct | 0 ms | 212 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 212 KB | Output is correct |
2 | Correct | 1 ms | 212 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 212 KB | Output is correct |
2 | Correct | 1 ms | 212 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 340 KB | Output is correct |
2 | Correct | 1 ms | 340 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1 ms | 468 KB | Output is correct |
2 | Correct | 2 ms | 468 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 724 KB | Output is correct |
2 | Correct | 9 ms | 1308 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 10 ms | 1588 KB | Output is correct |
2 | Correct | 8 ms | 1652 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 26 ms | 3312 KB | Output is correct |
2 | Correct | 43 ms | 5836 KB | Output is correct |
3 | Correct | 32 ms | 5264 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 22 ms | 3252 KB | Output is correct |
2 | Correct | 51 ms | 6824 KB | Output is correct |
3 | Correct | 34 ms | 5828 KB | Output is correct |
4 | Correct | 47 ms | 6672 KB | Output is correct |