Submission #287903

#TimeUsernameProblemLanguageResultExecution timeMemory
287903shrek12357Gondola (IOI14_gondola)C++14
Compilation error
0 ms0 KiB
#include <iostream> #include <vector> #include <algorithm> #include <string> #include <map> #include <set> #include <climits> #include <cmath> #include <fstream> #include <queue> //#include "gondola.h" using namespace std; int valid(int n, int inputSeq[]) { set<int> found; for (int i = 0; i < n; i++) { found.insert(inputSeq[i]); } if (found.size() != n) { return 0; } int idx = -1; int val = 0; for (int i = 0; i < n; i++) { if (inputSeq[i] <= n) { idx = i; val = inputSeq[i]; break; } } int actual[100005]; actual[idx] = val; val++; if (val > n) { val -= n; } for (int i = 1; i < n; i++) { int cur = (idx + i + n) % n; int pre = (idx + i - 1 + n) % n; actual[cur] = val; val++; if (val > n) { val -= n; } } for (int i = 0; i < n; i++) { if (inputSeq[i] <= n && inputSeq[i] != actual[i]) { return 0; } } return 1; } int replacement(int n, int gondolaSeq[], int replacementSeq[]) { int idx = -1, val = 0; for (int i = 0; i < n; i++) { if (gondolaSeq[i] <= n) { idx = i; val = gondolaSeq[i]; break; } } if (idx == -1) { idx = 0; val = 1; } int actual[100005]; actual[idx] = val; val++; if (val > n) { val -= n; } for (int i = 1; i < n; i++) { int cur = (idx + i + n) % n; int pre = (idx + i - 1 + n) % n; actual[cur] = val; val++; if (val > n) { val -= n; } } set<pair<int, int>> changes; for (int i = 0; i < n; i++) { if (gondolaSeq[i] > n) { changes.insert({ gondolaSeq[i], actual[i]}); } } int cur = n + 1; vector<int> ans; while (changes.size() > 0) { if (cur == changes.begin()->first) { ans.push_back(changes.begin()->second); changes.erase(changes.begin()); } else { ans.push_back(changes.begin()->second); int temp = changes.begin()->first; changes.erase(changes.begin()); changes.insert({ temp, cur }); } cur++; } for (int i = 0; i < ans.size(); i++) { replacementSeq[i] = ans[i]; //cout << replacementSeq[i] << endl; } return ans.size(); } int countReplacement(int n, int inputSeq[]) { return 0; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:19:19: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   19 |  if (found.size() != n) {
      |      ~~~~~~~~~~~~~^~~~
gondola.cpp:39:7: warning: unused variable 'pre' [-Wunused-variable]
   39 |   int pre = (idx + i - 1 + n) % n;
      |       ^~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:75:7: warning: unused variable 'pre' [-Wunused-variable]
   75 |   int pre = (idx + i - 1 + n) % n;
      |       ^~~
gondola.cpp:103:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  103 |  for (int i = 0; i < ans.size(); i++) {
      |                  ~~^~~~~~~~~~~~
/tmp/ccASSUm0.o: In function `main':
grader.cpp:(.text.startup+0xa2): undefined reference to `valid'
grader.cpp:(.text.startup+0xee): undefined reference to `countReplacement'
grader.cpp:(.text.startup+0x112): undefined reference to `replacement'
collect2: error: ld returned 1 exit status