Submission #674021

#TimeUsernameProblemLanguageResultExecution timeMemory
674021peacebringer1667Type Printer (IOI08_printer)C++11
30 / 100
418 ms90596 KiB
#include<bits/stdc++.h> #define whilst while typedef long long ll; using namespace std; string a[25003]; int f[650078][27]; int b[25003]; int m = 0;bool eow[650078]; vector <vector<int>> vec(650078); void dfs(int u){ cout << (char)f[u][0] << endl; if (eow[u]) cout << "P" << endl; for (int i = 0 ; i < vec[u].size() ; i++) dfs(vec[u][i]); if (u == m) m = -1; if (m != -1) cout << "-" << endl; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0);cout.tie(0); int d1 = 0,n,cur,j,maxlen = 0,index = n;string x; //freopen("typ5a.in","r",stdin); //freopen("Warrior.txt","w",stdout); cin >> n; memset(f,0,sizeof(f)); for (int i = 1 ; i <= n ; i++){ cin >> a[i]; if (maxlen < a[i].size()){ maxlen = a[i].size();index = i; } } swap(a[index],a[n]); for (int i = 1 ; i < n ; i++) if (a[i][0] == a[n][0]){ d1++;b[d1] = i; }int d2 = d1;d1 = 1; for (int i = n-1 ; i >= n-d2 ; i--) if (a[i][0] != a[n][0]){ swap(a[i],a[b[d1]]); d1++; } for (int i = 1 ; i <= n; i++){ cur = 0,j = 0; while (j < a[i].size() && f[cur][a[i][j]-96]){ cur = f[cur][a[i][j]-96];j++; } for (int k = j ; k < a[i].size() ; k++){ m++;f[cur][a[i][k]-96] = m;f[m][0] = a[i][k];vec[cur].push_back(m); cur = m; } eow[m] = 1; } cout << 2*m - a[n].size() + n<< endl; for (int i = 0 ; i < vec[0].size() ; i++) dfs(vec[0][i]); return 0; }

Compilation message (stderr)

printer.cpp: In function 'void dfs(int)':
printer.cpp:13:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |  for (int i = 0 ; i < vec[u].size() ; i++)
      |                   ~~^~~~~~~~~~~~~~~
printer.cpp: In function 'int main()':
printer.cpp:28:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |      if (maxlen < a[i].size()){
      |          ~~~~~~~^~~~~~~~~~~~~
printer.cpp:44:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   44 |         while (j < a[i].size() && f[cur][a[i][j]-96]){
      |                ~~^~~~~~~~~~~~~
printer.cpp:47:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |   for (int k = j ; k < a[i].size() ; k++){
      |                    ~~^~~~~~~~~~~~~
printer.cpp:54:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |  for (int i = 0 ; i < vec[0].size() ; i++) dfs(vec[0][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...