Submission #1001343

#TimeUsernameProblemLanguageResultExecution timeMemory
1001343ZeroCoolGondola (IOI14_gondola)C++14
55 / 100
25 ms5144 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; #define ar array int valid(int n, int A[]){ int B[n]; int p; set<int> s; for(int i = 0;i < n;i++)s.insert(A[i]); if(s.size() < n)return 0; for(int i = 0;i< n;i++){ if(A[i] <= n){ p = i; B[i] = A[i]; break; } } for(int i = p + 1;i < n;i++){ B[i] = B[i-1] + 1; } for(int i = p - 1;i >= 0;i--){ B[i] = B[i + 1] - 1; } for(int i = 0;i < n;i ++){ if(B[i] > n) B[i] -= n; if(B[i] <= 0) B[i] += n; } for(int i = 0;i<n;i++){ if(A[i] > n)continue; if(A[i] != B[i])return 0; } return 1; } //---------------------- int replacement(int n, int A[], int ans[]){ int o = 0; for(int i = 0;i < n;i++){ if(A[i] > n)o++; } vector<ar<int, 2> > v; if(o == n){ for(int i = 0;i < n;i++)v.push_back({A[i], i + 1}); }else{ int B[n]; int p; for(int i = 0;i< n;i++){ if(A[i] <= n){ p = i; B[i] = A[i]; break; } } for(int i = p + 1;i < n;i++){ B[i] = B[i-1] + 1; } for(int i = p - 1;i >= 0;i--){ B[i] = B[i + 1] - 1; } for(int i = 0;i < n;i ++){ if(B[i] > n) B[i] -= n; if(B[i] <= 0) B[i] += n; } for(int i = 0;i < n;i++){ if(A[i] > n)v.push_back({A[i], B[i]}); } } sort(v.begin(), v.end()); int c = n + 1; int cnt = 0; for(auto [x, i]: v){ ans[cnt++] = i; while(c != x){ ans[cnt++] = c++; } c++; } return cnt; } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:14:14: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   14 |  if(s.size() < n)return 0;
      |     ~~~~~~~~~^~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:87:11: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   87 |  for(auto [x, i]: v){
      |           ^
gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:24:10: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
   24 |  for(int i = p + 1;i < n;i++){
      |          ^
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:66:11: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
   66 |   for(int i = p + 1;i < n;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...