# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
716641 | 2023-03-30T16:01:31 Z | europium | Type Printer (IOI08_printer) | C++17 | 51 ms | 6648 KB |
// - 28/3/23 #include <iostream> #include <vector> #include <algorithm> #include <string> #include <numeric> #include <cmath> #include <iterator> #include <set> #include <map> #include <math.h> #include <iomanip> #include <unordered_set> #include <queue> #include <climits> using namespace std; // clang++ -std=c++17 IOI08_Printer.cpp && ./a.out using ll = long long; bool comp(const string &a, const string&b){ if (a.size() == b.size()) return a < b; return a.size() < b.size(); } void solve(){ int n; cin >> n; vector<string> a(n); for (string& e : a) cin >> e; int max_len = 0; char end_ltr; string max_str; for (auto e : a){ if (e.size() > max_len){ max_len = e.size(); end_ltr = e[0]; max_str = e; } } vector<string> first, last; for (auto e : a){ if (e == max_str) continue; if (e[0] == end_ltr) last.push_back(e); else first.push_back(e); } sort(first.begin(), first.end()); sort(last.begin(), last.end()); a.clear(); for (auto e : first) a.push_back(e); for (auto e : last) a.push_back(e); a.push_back(max_str); // for (auto e : last) cout << e << ' '; // cout << '\n'; vector<char> ans; string s = ""; for (auto e : a){ // removing characters int min_size = min((int)s.size(), (int)e.size()); int stop; (s.size() == 0 || e.size() == 0) ? stop = 0 : stop = min_size; // stop is length of same prefix for (int i = 0; i < min_size; i++){ if (s[i] != e[i]){ stop = i; break; } } // cout << s << ' ' << e << '\n'; // cout << stop << '\n'; for (int i = 0; i < s.size() - stop; i++) ans.push_back('-'); s = s.substr(0, stop); // adding characters while (s != e){ ans.push_back(e[s.size()]); s += e[s.size()]; } ans.push_back('P'); } cout << ans.size() << '\n'; for (auto e : ans) cout << e << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(0); // freopen("input.txt", "r", stdin); solve(); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | 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 | 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 | 340 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 2 ms | 340 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 4 ms | 788 KB | Output is correct |
2 | Incorrect | 11 ms | 1252 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 11 ms | 1508 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 28 ms | 3208 KB | Output is correct |
2 | Incorrect | 51 ms | 6648 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 25 ms | 3296 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |