Submission #432990

#TimeUsernameProblemLanguageResultExecution timeMemory
432990SAADType Printer (IOI08_printer)C++17
30 / 100
604 ms3408 KiB
#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 (stderr)

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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...