# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
57795 | 2018-07-16T07:11:32 Z | gnoor | Type Printer (IOI08_printer) | C++17 | 1000 ms | 45220 KB |
#include <cstdio> #include <vector> #include <string> #include <algorithm> #include <iostream> #include <map> using namespace std; vector<string> tbl; vector<char> ans; map<string,int> mp; bool cmp(const string &a ,const string &b) { string x; int cur=0; while (a[cur]==b[cur]) { x.push_back(a[cur]); cur++; } string y=x; if (a[cur]) x.push_back(a[cur]); if (b[cur]) y.push_back(b[cur]); //cout << x << " " << y << " " << mp[x] << " " << mp[y] << endl; if (mp[x]!=mp[y]) return mp[x]<mp[y]; return x<y; } int main () { int n; scanf("%d",&n); string x; string y; for (int i=0;i<n;i++) { cin >> x; tbl.push_back(x); y.clear(); for (int j=0;j<(int)x.size();j++) { y.push_back(x[j]); mp[y]=max(mp[y],(int)x.size()); } } sort(tbl.begin(),tbl.end(),cmp); for (int i=0;i<(int)tbl[0].size();i++) { ans.push_back(tbl[0][i]); } ans.push_back('P'); for (int i=1;i<n;i++) { int cnt=0; while (tbl[i][cnt]==tbl[i-1][cnt]) cnt++; for (int j=0;j<(int)tbl[i-1].size()-cnt;j++) { ans.push_back('-'); } for (int j=cnt;j<(int)tbl[i].size();j++) { ans.push_back(tbl[i][j]); } ans.push_back('P'); } printf("%d\n",ans.size()); for (int i=0;i<(int)ans.size();i++) { printf("%c\n",ans[i]); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 376 KB | Output is correct |
2 | Correct | 3 ms | 376 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 444 KB | Output is correct |
2 | Correct | 2 ms | 504 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 504 KB | Output is correct |
2 | Correct | 3 ms | 504 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 720 KB | Output is correct |
2 | Correct | 3 ms | 720 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 720 KB | Output is correct |
2 | Correct | 7 ms | 908 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 18 ms | 1300 KB | Output is correct |
2 | Correct | 21 ms | 1460 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 67 ms | 3012 KB | Output is correct |
2 | Correct | 160 ms | 5884 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 202 ms | 6952 KB | Output is correct |
2 | Correct | 157 ms | 6952 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 484 ms | 16572 KB | Output is correct |
2 | Correct | 794 ms | 37536 KB | Output is correct |
3 | Correct | 712 ms | 37536 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 510 ms | 37536 KB | Output is correct |
2 | Execution timed out | 1067 ms | 45220 KB | Time limit exceeded |
3 | Halted | 0 ms | 0 KB | - |