Submission #716630

#TimeUsernameProblemLanguageResultExecution timeMemory
716630europiumType Printer (IOI08_printer)C++17
20 / 100
37 ms3572 KiB
// - 28/3/23 #include <iostream> #include <vector> #include <algorithm> #include <string> #include <numeric> #include <cmath> #include <iterator> #include <set> #include <map> #include <math.h> #include <iomanip> #include <unordered_set> #include <queue> #include <climits> using namespace std; // clang++ -std=c++17 IOI08_Printer.cpp && ./a.out using ll = long long; void solve(){ int n; cin >> n; vector<string> a(n); for (string& e : a) cin >> e; int max_len = 0; char end_ltr; for (auto e : a){ if (e.size() > max_len){ max_len = e.size(); end_ltr = e[0]; } } vector<string> first, last; for (auto e : a){ if (e[0] == end_ltr) last.push_back(e); else first.push_back(e); } sort(first.begin(), first.end()); sort(last.begin(), last.end()); a.clear(); for (auto e : first) a.push_back(e); for (auto e : last) a.push_back(e); vector<char> ans; string s = ""; for (auto e : a){ // removing characters int stop; for (int i = 0; i < min(s.size(), e.size()); i++){ if (s[i] != e[i]){ stop = i; break; } } for (int i = 0; i < s.size() - stop; i++) ans.push_back('-'); s = s.substr(0, stop); // adding characters while (s != e){ ans.push_back(e[s.size()]); s += e[s.size()]; } ans.push_back('P'); } cout << ans.size() << '\n'; for (auto e : ans) cout << e << '\n'; } int main() { ios::sync_with_stdio(false); cin.tie(0); // freopen("input.txt", "r", stdin); solve(); return 0; }

Compilation message (stderr)

printer.cpp: In function 'void solve()':
printer.cpp:32:22: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   32 |         if (e.size() > max_len){
      |             ~~~~~~~~~^~~~~~~~~
printer.cpp:61:27: warning: comparison of integer expressions of different signedness: 'int' and 'const long unsigned int' [-Wsign-compare]
   61 |         for (int i = 0; i < min(s.size(), e.size()); i++){
      |                         ~~^~~~~~~~~~~~~~~~~~~~~~~~~
printer.cpp:68:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   68 |         for (int i = 0; i < s.size() - stop; i++) ans.push_back('-');
      |                         ~~^~~~~~~~~~~~~~~~~
printer.cpp:68:40: warning: 'stop' may be used uninitialized in this function [-Wmaybe-uninitialized]
   68 |         for (int i = 0; i < s.size() - stop; i++) ans.push_back('-');
      |                                        ^~~~
printer.cpp:41:9: warning: 'end_ltr' may be used uninitialized in this function [-Wmaybe-uninitialized]
   41 |         if (e[0] == end_ltr) last.push_back(e);
      |         ^~
#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...