Submission #969649

#TimeUsernameProblemLanguageResultExecution timeMemory
969649vjudge1Type Printer (IOI08_printer)C++14
100 / 100
78 ms5064 KiB
#include<bits/stdc++.h> using namespace std; const int mxN = 25000 + 5; int n; string words[mxN]; string base = ""; bool cmp(string a , string b){ int na = a.length() , nb = b.length(); int idx_a = na , idx_b = nb; for(int i=0;i<na;i++){ if(a[i] != base[i]){ idx_a = i; break; } } for(int i=0;i<nb;i++){ if(b[i] != base[i]){ idx_b = i; break; } } if(idx_a==idx_b) return a < b; return idx_a < idx_b; } int main(){ cin>> n; for(int i=0;i<n;i++){ cin>> words[i]; if(words[i].length() > base.length()) base = words[i]; } // words[n-1] = base , cnt = len(base) sort(words, words + n , cmp); // for(auto word : words) cout<< word << "\n"; string ans = ""; for(auto c : words[0]) ans += c; ans += 'P'; for(int i=1;i<n;i++){ int idx = min(words[i-1].length() ,words[i].length()); for(int j=0;j<min(words[i-1].length() , words[i].length());j++){ if(words[i-1][j] != words[i][j]){ idx = j; break; } } for(int j=words[i-1].length()-1;j>=idx;j--) ans += '-'; for(int j=idx;j<words[i].length();j++) ans += words[i][j]; ans += 'P'; } cout<< ans.length() << "\n"; for(auto c : ans) cout<< c << "\n"; return 0; }

Compilation message (stderr)

printer.cpp: In function 'int main()':
printer.cpp:53:22: warning: comparison of integer expressions of different signedness: 'int' and 'const long unsigned int' [-Wsign-compare]
   53 |         for(int j=0;j<min(words[i-1].length() , words[i].length());j++){
      |                     ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printer.cpp:61:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |         for(int j=idx;j<words[i].length();j++) ans += words[i][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...