Submission #528903

#TimeUsernameProblemLanguageResultExecution timeMemory
528903Alex_tz307Gondola (IOI14_gondola)C++17
55 / 100
16 ms2160 KiB
#include <bits/stdc++.h> #include "gondola.h" using namespace std; int valid(int n, int a[]) { int N = 0; for (int i = 0; i < n; ++i) { N = max(N, a[i]); } vector<bool> ap(N + 1); int pos = 0; for (int i = 0; i < n; ++i) { if (ap[a[i]]) { return 0; } ap[a[i]] = true; if (a[i] < a[pos]) { pos = i; } } if (a[pos] > n) { return 1; } int x = a[pos]; for (int rep = 0; rep < n; ++rep) { if (a[pos] <= n && a[pos] != x) { return 0; } x += 1; if (x == n + 1) { x = 1; } pos += 1; if (pos == n) { pos = 0; } } return 1; } void maxSelf(int &x, int y) { if (x < y) { x = y; } } int replacement(int n, int a[], int sol[]) { vector<int> v(n); iota(v.begin(), v.end(), 1); for (int i = 0; i < n; ++i) { if (a[i] <= n) { int x = a[i]; for (int rep = 0; rep < n; ++rep) { v[i] = x; x += 1; if (x == n + 1) { x = 1; } i += 1; if (i == n) { i = 0; } } break; } } int N = 0; for (int i = 0; i < n; ++i) { maxSelf(N, a[i]); } vector<int> w(N + 1); for (int i = 0; i < n; ++i) { w[a[i]] = v[i]; } int len = 0, x = n + 1; for (int i = 1; i <= N; ++i) { if (w[i]) { while (w[i] < i) { sol[len++] = w[i]; w[i] = x; x += 1; } } } return len; } int countReplacement(int n, int a[]) { if (!valid(n, a)) { return 0; } }

Compilation message (stderr)

gondola.cpp: In function 'int countReplacement(int, int*)':
gondola.cpp:94:1: warning: control reaches end of non-void function [-Wreturn-type]
   94 | }
      | ^
#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...