Submission #818175

#TimeUsernameProblemLanguageResultExecution timeMemory
818175andecaandeciGondola (IOI14_gondola)C++17
55 / 100
15 ms2292 KiB
#include <bits/stdc++.h> #include "gondola.h" using namespace std; bool vis[250005]; int valid(int n, int inputSeq[]) { bool drop = 0; int cur = -1; for (int i = 0; i < n; i++) { if (cur != -1) cur = (cur%n)+1; if (vis[inputSeq[i]]) return 0; vis[inputSeq[i]] = 1; if (inputSeq[i] > n) continue; // if (last > inputSeq[i] and drop) return 0; // if (last > inputSeq[i]) drop = 1; // last = inputSeq[i]; // cout << cur << endl; if (cur == -1) cur = inputSeq[i]; else if (cur != inputSeq[i]) return 0; } return 1; } //---------------------- vector<pair<int, int>> dif; int replacement(int n, int gondolaSeq[], int replacementSeq[]) { // int mx = 0; // for (int i = 0; i < n; i++) { // mx = max(mx, gondolaSeq[i]); // vis[gondolaSeq[i]] = 1; // } // int counter = 0; // for (int i = 1; i <= mx; i++) { // if (vis[i]) continue; // replacementSeq[counter] = i; // counter++; // } // mx -= n; // return mx; int landasan = -1; int idx_landasan = -1; for (int i = 0; i < n; i++) { if (gondolaSeq[i] <= n) { landasan = gondolaSeq[i]; idx_landasan = i; break; } } if (landasan == -1 and idx_landasan == -1) { landasan = 1; idx_landasan = 0; } // cout << "landasan : " << idx_landasan << " " << landasan << endl; int curi, curdasar = landasan-1; for (int i = idx_landasan; i < n+idx_landasan; i++) { curi = (i%n); curdasar = (curdasar%n)+1; if (gondolaSeq[curi] <= n) continue; dif.push_back({gondolaSeq[curi], curdasar}); // cout << curi << " " << curdasar << " " << endl; } sort(dif.begin(), dif.end()); // cout << "------" << endl; // for (auto i: dif) { // cout << i.first << " " << i.second << endl; // } int cur = n+1, idx = 0, counter = 0; for (int i = 0; i < dif.size(); i++) { while (dif[i].second != dif[i].first) { replacementSeq[idx] = dif[i].second; dif[i].second = cur; cur++; idx++; counter++; // cout << dif[i].first << " " << dif[i].second << endl; } } for (auto i: dif) { while (i.second != i.first) { replacementSeq[idx] = i.second; i.second = cur; cur++; idx++; counter++; } } // cout << endl; return counter; } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:9:8: warning: unused variable 'drop' [-Wunused-variable]
    9 |   bool drop = 0;
      |        ^~~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:78:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   78 |   for (int i = 0; i < dif.size(); 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...