Submission #432990

# Submission time Handle Problem Language Result Execution time Memory
432990 2021-06-18T17:11:16 Z SAAD Type Printer (IOI08_printer) C++17
30 / 100
604 ms 3408 KB
#define F first
#define S second
#define rep(i,a,b) for(int i=a;!(a==b&&i!=b)&&((i<=b&&b>=a)||(i>=b&&a>=b));i+=(a<=b?1:-1))
#define pb push_back
#define Fbitl __builtin_ffs
#define bit1 __builtin_popcount
//#include <bits/stdc++.h>
#include <iostream>
#include <math.h>
#include <algorithm>
#include <string.h>
#include <vector>
#include <queue>
#include <map>
#include <unordered_map>
//#include "memory.h"
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<string, string> pss;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<pii> vii;
typedef vector<ll> vl;
typedef vector<vl> vvl;
int mx[200];
int main(){
    priority_queue <pair<pair<int,int>, string>> q;
    int n;
    cin >> n;
    string s;
    vector <string> x;
    vector <char> ans ;
    for (int i = 0; i < n; i++)
    {
        cin >> s;
        mx[s[0]] = max(mx[s[0]],(int)s.length());
        x.push_back(s);
    }
    for (auto i : x)
        q.push({{-(mx[i[0]]),-i.length()},i});
    string now = "";
    while (!q.empty()) {
        s = q.top().second;
        if (now == "") {
            for (auto i : s) {
                ans.pb(i);
                now += i;
            }
            ans.pb('P');
        }
        else {
            while (now.length()&&(now.length() > s.length() || (s.length()>=now.length()&&s.substr(0,now.length())!=now) )) {
                now.pop_back();
                ans.pb('-');
            }
            for (int i = now.length(); i < s.length(); i++) {
                ans.pb(s[i]);
                now += s[i];
            }
            ans.pb('P');
        }
        q.pop();
    }
    cout << ans.size() << endl;
    for(auto i:ans) cout << i << endl;
    return 0;
}

Compilation message

printer.cpp: In function 'int main()':
printer.cpp:38:16: warning: array subscript has type 'char' [-Wchar-subscripts]
   38 |         mx[s[0]] = max(mx[s[0]],(int)s.length());
      |                ^
printer.cpp:38:31: warning: array subscript has type 'char' [-Wchar-subscripts]
   38 |         mx[s[0]] = max(mx[s[0]],(int)s.length());
      |                               ^
printer.cpp:42:27: warning: array subscript has type 'char' [-Wchar-subscripts]
   42 |         q.push({{-(mx[i[0]]),-i.length()},i});
      |                           ^
printer.cpp:58:42: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   58 |             for (int i = now.length(); i < s.length(); i++) {
      |                                        ~~^~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 3 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 26 ms 424 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 96 ms 684 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 255 ms 1608 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 604 ms 3408 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 489 ms 3400 KB Output isn't correct
2 Halted 0 ms 0 KB -