Submission #1026279

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

string lgst, s, O;
unordered_map<string, int> M;

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

void dfs() {
    if(!M[s]) return;
    int ln = s.size();
    if(ln) O.push_back(s[ln-1]);
    if(M[s] == 2) O.push_back('P');
    for(int i = 'a'; i <= 'z'; i++) {
        if(i == lgst[ln]) continue;
        s += char(i);
        dfs();
        s.pop_back();
    }
    s += char(lgst[ln]);
    dfs();
    s.pop_back();
    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;
    s = "";
    dfs();
}

Compilation message

printer.cpp: In function 'int main()':
printer.cpp:37:24: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   37 |         if(W[i].size() > ml) lgst = W[i], ml = W[i].size();
      |            ~~~~~~~~~~~~^~~~
printer.cpp:42:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |         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 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 600 KB Output is correct
2 Correct 1 ms 452 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 600 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1304 KB Output is correct
2 Correct 19 ms 8064 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 40 ms 15568 KB Output is correct
2 Correct 45 ms 17536 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 203 ms 48004 KB Output is correct
2 Correct 767 ms 104700 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 1026 ms 128392 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1077 ms 188592 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1060 ms 183100 KB Time limit exceeded
2 Halted 0 ms 0 KB -