Submission #245830

#TimeUsernameProblemLanguageResultExecution timeMemory
245830kevleeType Printer (IOI08_printer)C++17
100 / 100
89 ms6256 KiB
#include <bits/stdc++.h> using namespace std; char s[25005][27]; int n, maxi, maxx; pair<pair<int, string>, int>p[25005]; int main () { scanf("%d", &n); for (int i=0; i<n; i++) { scanf("%s", s[i]); int len=strlen(s[i]); if (len>maxx) { maxx=len; maxi=i; } } for (int i=0; i<n; i++) { int cnt=0; for (int j=0; j<maxx; j++) { if (s[i][j]!=s[maxi][j]) break; cnt++; } string tmp=s[i]; p[i]={{cnt, tmp}, i}; } sort(p, p+n); string prev=""; vector<char>v; for (int i=0; i<n; i++) { int cnt=0; string cur=p[i].first.second; for (int j=0; j<prev.size(); j++) { if (prev[j]!=cur[j]) break; cnt++; } for (int j=0; j<prev.size()-cnt; j++) v.push_back('-'); for (int j=cnt; j<cur.size(); j++) v.push_back(cur[j]); v.push_back('P'); prev=cur; } printf("%d\n", v.size()); for (int i=0; i<v.size(); i++) printf("%c\n", v[i]); return 0; }

Compilation message (stderr)

printer.cpp: In function 'int main()':
printer.cpp:31:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int j=0; j<prev.size(); j++) {
                 ~^~~~~~~~~~~~
printer.cpp:35:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int j=0; j<prev.size()-cnt; j++) v.push_back('-');
                 ~^~~~~~~~~~~~~~~~
printer.cpp:36:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int j=cnt; j<cur.size(); j++) v.push_back(cur[j]);
                   ~^~~~~~~~~~~
printer.cpp:40:25: warning: format '%d' expects argument of type 'int', but argument 2 has type 'std::vector<char>::size_type {aka long unsigned int}' [-Wformat=]
  printf("%d\n", v.size());
                 ~~~~~~~~^
printer.cpp:41:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i=0; i<v.size(); i++) printf("%c\n", v[i]);
                ~^~~~~~~~~
printer.cpp:7:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
  ~~~~~^~~~~~~~~~
printer.cpp:9:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%s", s[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...