Submission #559504

#TimeUsernameProblemLanguageResultExecution timeMemory
559504JomnoiGondola (IOI14_gondola)C++17
55 / 100
29 ms4528 KiB
#include <bits/stdc++.h> #include "gondola.h" using namespace std; const int MAX_N = 250005; const int MOD = 1e9 + 9; int valid(int n, int inputSeq[]) { set <int> s; int pos = -1; for(int i = 0; i < n; i++) { if(inputSeq[i] <= n) { pos = i; s.insert(inputSeq[i]); } } if(s.size() < n) { return 0; } if(pos == -1) { return 1; } int start = (inputSeq[pos] - pos - 1 + 2 * n) % n + 1; for(int i = 0; i < n; i++) { if(inputSeq[i] <= n and inputSeq[i] != (start + i - 1) % n + 1) { return 0; } } return 1; } //---------------------- int location[MAX_N]; int replacement(int n, int gondolaSeq[], int replacementSeq[]) { memset(location, -1, sizeof(location)); int start = 1, max_val = 0; for(int i = 0; i < n; i++) { if(gondolaSeq[i] <= n) { start = (gondolaSeq[i] - i - 1 + 2 * n) % n + 1; } max_val = max(max_val, gondolaSeq[i]); location[gondolaSeq[i]] = i; } int j = n + 1, len = 0; for(int i = n + 1; i <= max_val; i++) { if(location[i] == -1) { continue; } replacementSeq[len++] = (location[i] + start - 1) % n + 1; while(j < i) { if(location[j] == -1) { replacementSeq[len++] = j; } j++; } } return len; } //---------------------- int countReplacement(int n, int inputSeq[]) { if(valid(n, inputSeq) == 0) { return 0; } int max_val = 0; for(int i = 0; i < n; i++) { max_val = max(max_val, inputSeq[i]); } if(max_val == n) { return 1; } // otherwise return -3; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:18:17: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   18 |     if(s.size() < n) {
      |        ~~~~~~~~~^~~
#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...