Submission #926824

#TimeUsernameProblemLanguageResultExecution timeMemory
926824NintsiChkhaidzeGondola (IOI14_gondola)C++17
25 / 100
33 ms6996 KiB
#include "gondola.h" #include <bits/stdc++.h> #define pb push_back #define s second #define f first using namespace std; int b[200005],c[200005],a[200005]; int valid(int n, int gondolaSeq[]){ map <int,int> mp; int k = -1; for (int i=0;i<n;i++){ a[i] = gondolaSeq[i]; if (mp.find(a[i]) != mp.end()) return 0; mp[a[i]] = 1; if (a[i] > n) continue; if (k == -1) k= i; else if (a[k] > a[i]) k = i; } if (k==-1) return 1; int m = 0; int st = a[k]; for (int j = k; j < n; j++) if (a[j] <= n) b[++m] = a[j],c[m] = st + (j - k); for (int j = 0; j < k; j++) if (a[j] <= n) b[++m] = a[j],c[m] = st + (n - k) + j; for (int i = 1; i <= m; i++){ if (b[i] != c[i]) return 0; } return 1; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int k = -1; for (int i=0;i<n;i++){ a[i] = gondolaSeq[i]; if (a[i] > n) continue; if (k == -1) k= i; else if (a[k] > a[i]) k = i; } if (k == -1) k=0; int st = a[k]; for (int j = k; j < n; j++) b[j] = st + (j - k); for (int j = 0; j < k; j++) b[j] = st + (n - k) + j; for (int j = 0; j < n; j++) if (b[j] > n) b[j] -= n; int x = n+1,m = -1; vector <pair <int,int> > vec; for (int i=0;i<n;i++){ if (gondolaSeq[i] > n) vec.pb({gondolaSeq[i],i}); } sort(vec.begin(),vec.end()); for (int j=0;j<vec.size();j++){ int final = vec[j].f,i = vec[j].s; int cur = b[i]; while (cur != final){ replacementSeq[++m] = cur; cur = x++; } } return m + 1; } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; }

Compilation message (stderr)

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:64:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   64 |  for (int j=0;j<vec.size();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...