Submission #529894

#TimeUsernameProblemLanguageResultExecution timeMemory
529894gg123_peGondola (IOI14_gondola)C++14
20 / 100
10 ms2144 KiB
#include <bits/stdc++.h> #include "gondola.h" using namespace std; #define f(i,a,b) for(int i = a; i < b; i++) const int N = 250005; int cant[N], m[N]; bool on[N]; int valid(int n, int X[]){ f(i,0,n) cant[X[i]]++; int ct = 0, id; f(i,1,N) { if(cant[i] > 1) return 0; if(i <= n and cant[i]) ct++; } if(ct == 0) return 1; f(i,0,n) if(X[i] <= n) id = i; vector <int> a, v1, v2; int pr = X[id]-1; f(i,0,n-id){ pr++; if(pr == n+1) pr = 1; v2.push_back(pr); } f(i,0,id){ pr++; if(pr == n+1) pr = 1; v1.push_back(pr); } for(int x: v1) a.push_back(x); for(int x: v2) a.push_back(x); int ans = 1; f(i,0,n) if(X[i] <= n and a[i] != X[i]) ans = 0; return ans; } int replacement(int n, int X[], int res[]){ int id = -1; f(i,0,n) if(X[i] <= n) id = i; vector <int> a, v1, v2; if(id != -1){ vector <int> a, v1, v2; int pr = X[id]-1; f(i,0,n-id){ pr++; if(pr == n+1) pr = 1; v2.push_back(pr); } f(i,0,id){ pr++; if(pr == n+1) pr = 1; v1.push_back(pr); } for(int x: v1) a.push_back(x); for(int x: v2) a.push_back(x); } else f(i,0,n) a.push_back(i+1); int maxi = 0; f(i,0,n) { if(X[i] > n) m[X[i]] = a[i], on[X[i]] = 1; maxi = max(maxi, X[i]); } vector <int> ans; id = n+1; while(id <= maxi){ int l = id; while(!on[id]) id++; ans.push_back(m[id]); f(i,l,id) ans.push_back(i); id++; } int l = ans.size(); f(i,0,l) res[i] = ans[i]; return l; } int countReplacement(int n, int inputSeq[]) { return -3; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:22:16: warning: 'id' may be used uninitialized in this function [-Wmaybe-uninitialized]
   22 |     int pr = X[id]-1;
      |                ^~
#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...