Submission #340203

#TimeUsernameProblemLanguageResultExecution timeMemory
340203Sho10Type Printer (IOI08_printer)C++14
100 / 100
86 ms13856 KiB
#include <bits/stdc++.h> //Andrei Alexandru a.k.a Sho10 #define ll long long #define double long double #pragma GCC optimize("O3") #pragma GCC optimize("Ofast") #define all(a) (a).begin(), (a).end() #define f first #define s second #define pb push_back #define mp make_pair #define pi pair #define rc(s) return cout<<s,0 #define endl '\n' #define mod 1000000007 #define PI 3.14159265359 #define MAXN 100005 #define INF 1000000005 #define LINF 1000000000000000005ll #define CODE_START ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; ll n,mx,pos; string s[200005],last=""; vector<pair<pair<ll,string>,ll>>v; int32_t main(){ CODE_START; cin>>n; for(ll i=1;i<=n;i++) { cin>>s[i]; if(s[i].size()>mx){ mx=s[i].size(); pos=i; } } for(ll i=1;i<=n;i++) { ll s1=0; for(ll j=0;j<s[i].size();j++) { if(s[i][j]!=s[pos][j]){ break; }else s1++; } v.pb(mp(mp(s1,s[i]),i)); } sort(v.begin(),v.end()); string ans=""; for(ll i=0;i<n;i++) { string c=v[i].f.s; ll cnt=0; for(ll j=0;j<min(c.size(),last.size());j++) { if(last[j]!=c[j]){ break; } cnt++; } for(ll j=0;j<(last.size())-cnt;j++){ ans+='-'; } for(ll j=cnt;j<c.size();j++) { ans+=c[j]; } ans+='P'; last=c; } cout<<ans.size()<<endl; for(auto it : ans){ cout<<it<<endl; } }

Compilation message (stderr)

printer.cpp: In function 'int32_t main()':
printer.cpp:30:19: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   30 |     if(s[i].size()>mx){
      |                   ^
printer.cpp:38:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |     for(ll j=0;j<s[i].size();j++)
      |                ~^~~~~~~~~~~~
printer.cpp:52:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'const long unsigned int' [-Wsign-compare]
   52 |     for(ll j=0;j<min(c.size(),last.size());j++)
      |                ~^~~~~~~~~~~~~~~~~~~~~~~~~~
printer.cpp:59:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'long long unsigned int' [-Wsign-compare]
   59 |     for(ll j=0;j<(last.size())-cnt;j++){
      |                ~^~~~~~~~~~~~~~~~~~
printer.cpp:62:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |     for(ll j=cnt;j<c.size();j++)
      |                  ~^~~~~~~~~
#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...