Submission #1025355

#TimeUsernameProblemLanguageResultExecution timeMemory
1025355HappyCapybaraGondola (IOI14_gondola)C++17
55 / 100
12 ms3948 KiB
#include "gondola.h"
#include<bits/stdc++.h>
using namespace std;

int valid(int n, int inputSeq[]){
  int x = -1;
  unordered_set<int> s;
  for (int i=0; i<n; i++){
    if (s.find(inputSeq[i]) != s.end()) return 0;
    s.insert(inputSeq[i]);
    if (inputSeq[i] <= n){
      if (x != -1 && x != inputSeq[i]) return 0;
      if (x == -1) x = inputSeq[i];
    }
    if (x != -1) x = (x % n) + 1;
  }
  return 1;
}

int replacement(int n, int gondolaSeq[], int replacementSeq[]){
  vector<int> v(n);
  int x = -1;
  for (int i=0; i<2*n; i++){
    if (x != -1){
      v[x] = gondolaSeq[i%n];
      x = (x+1) % n;
    }
    else {
      if (i == n){
        v[0] = gondolaSeq[i%n];
        x = 1;
      }
      else if (gondolaSeq[i] <= n) x = gondolaSeq[i] % n;
    }
  }
  vector<pair<int,int>> w(n);
  for (int i=0; i<n; i++) w[i] = {v[i], i+1};
  sort(w.begin(), w.end());
  int cur = 0, last = n;
  for (int i=0; i<n; i++){
    if (w[i].first == w[i].second) continue;
    else {
      replacementSeq[cur] = w[i].second;
      cur++;
      last++;
      while (last != w[i].first){
        replacementSeq[cur] = last;
        cur++;
        last++;
      }
    }
  }
  return cur;
}

int countReplacement(int n, int inputSeq[]){
  return -3;
}
#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...