Submission #1026256

# Submission time Handle Problem Language Result Execution time Memory
1026256 2024-07-17T18:32:34 Z Nicolaikrob Type Printer (IOI08_printer) C++17
20 / 100
1000 ms 199268 KB
#include <bits/stdc++.h>
using namespace std;

string lgst;
vector<char> O;
unordered_map<string, int> M;

void out() {
    cout << O.size()-1;
    for(auto x : O) cout << x << '\n';
    exit(0);
}

void dfs(string s) {
    if(!M[s]) return;
    int ln = s.size();
    O.push_back(s[ln-1]);
    for(int i = 'a'; i <= 'z'; i++) {
        if(i == lgst[ln]) continue;
        dfs(s+char(i));
    }
    dfs(s+char(lgst[ln]));
    if(M[s] == 2) O.push_back('P');
    if(s+'.' == lgst) out();
    O.push_back('-');
}

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n; cin >> n;
    vector<string> W(n); for(auto &x : W) cin >> x;
    int ml = 0;
    for(int i = 0; i < n; i++) {
        if(W[i].size() > ml) lgst = W[i], ml = W[i].size();
    }
    lgst += '.';
    for(int i = 0; i < n; i++) {
        string t = "";
        for(int j = 0; j < W[i].size(); j++) {
            t += W[i][j];
            M[t] = max(M[t], 1);
        }
        M[t] = 2;
    }
    M[""] = 1;
    dfs("");
}

Compilation message

printer.cpp: In function 'int main()':
printer.cpp:34:24: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   34 |         if(W[i].size() > ml) lgst = W[i], ml = W[i].size();
      |            ~~~~~~~~~~~~^~~~
printer.cpp:39:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |         for(int j = 0; j < W[i].size(); j++) {
      |                        ~~^~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 604 KB didn't print every word
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 604 KB Output is correct
2 Incorrect 0 ms 348 KB didn't print every word
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 1372 KB didn't print every word
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 38 ms 15564 KB didn't print every word
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 225 ms 47940 KB didn't print every word
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 933 ms 128412 KB didn't print every word
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1055 ms 199268 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1068 ms 194256 KB Time limit exceeded
2 Halted 0 ms 0 KB -