Submission #340203

# Submission time Handle Problem Language Result Execution time Memory
340203 2020-12-27T09:25:21 Z Sho10 Type Printer (IOI08_printer) C++14
100 / 100
86 ms 13856 KB
#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

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 time Memory Grader output
1 Correct 5 ms 6636 KB Output is correct
2 Correct 5 ms 6636 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 6636 KB Output is correct
2 Correct 5 ms 6636 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 6636 KB Output is correct
2 Correct 5 ms 6636 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 6636 KB Output is correct
2 Correct 5 ms 6636 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 5 ms 6668 KB Output is correct
2 Correct 6 ms 6636 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 6764 KB Output is correct
2 Correct 7 ms 6764 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 11 ms 7100 KB Output is correct
2 Correct 17 ms 7548 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 21 ms 7784 KB Output is correct
2 Correct 17 ms 7804 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 43 ms 9584 KB Output is correct
2 Correct 74 ms 12960 KB Output is correct
3 Correct 49 ms 11424 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 42 ms 9312 KB Output is correct
2 Correct 86 ms 13856 KB Output is correct
3 Correct 55 ms 12064 KB Output is correct
4 Correct 78 ms 13728 KB Output is correct