Submission #1017438

#TimeUsernameProblemLanguageResultExecution timeMemory
1017438n3rm1nGondola (IOI14_gondola)C++17
25 / 100
6 ms1736 KiB
#include <bits/stdc++.h> #include "gondola.h" #define endl '\n' using namespace std; const int MAXN = 3e5 + 10; int seen[MAXN]; int valid(int n, int inputSeq[]) { int cnt = 0; int minim = 1e9; int minn = 1e9, maxx = 0; for (int i = 0; i < n; ++ i) { if(seen[inputSeq[i]])return 0; if(inputSeq[i] <= n)cnt ++; else { minn = min(minn, inputSeq[i]); maxx = max(maxx, inputSeq[i]); } minim = min(minim, inputSeq[i]); seen[inputSeq[i]] = 1; } int left = n - cnt; //cout << left << " " << minn << " " << maxx << endl; if(left != 0 && !(minn == n+1 && maxx == minn + left - 1)) return 0; //cout << "here " << endl; int seenit = 0, expected = minim; int onpoint = n+1; for (int i = 0; i < n; ++ i) { if(inputSeq[i] == minim) seenit = 1; if(!seenit)continue; if(inputSeq[i] > n) { expected ++; } else if(inputSeq[i] != expected) { return 0; } else expected ++; } for (int i = 0; i < n; ++ i) { if(inputSeq[i] == minim) break; if(inputSeq[i] > n) { expected ++; } else if(inputSeq[i] != expected) { return 0; } else expected ++; } return 1; } int place[MAXN]; int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int len = 0; int minim = 1e9, minim_index = 0; for (int i = 0; i < n; ++ i) { place[gondolaSeq[i]] = i; if(gondolaSeq[i] > n)len ++; if(gondolaSeq[i] <= n && minim > gondolaSeq[i]) { minim = gondolaSeq[i]; minim_index = i; } } if(minim == 1e9) { for (int i = n+1; i <= 2*n; ++ i) { replacementSeq[i - n - 1] = place[i] + 1; } return len; } int expected = 1; int starter = minim_index - (minim - 1); if(starter < 0)starter += n; //cout << starter << endl; int id = 0; for (int i = starter; i < n; ++ i) { if(gondolaSeq[i] != expected && gondolaSeq[i] >= n) replacementSeq[gondolaSeq[i] - n - 1] = expected; expected ++; } for (int i = 0; i < starter; ++ i) { if(gondolaSeq[i] != expected && gondolaSeq[i] >= n) replacementSeq[gondolaSeq[i] - n - 1] = expected; expected ++; } return len; } int countReplacement(int n, int inputSeq[]) { return 0; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:31:9: warning: unused variable 'onpoint' [-Wunused-variable]
   31 |     int onpoint = n+1;
      |         ^~~~~~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:91:9: warning: unused variable 'id' [-Wunused-variable]
   91 |     int id = 0;
      |         ^~
#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...