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...