Submission #722598

#TimeUsernameProblemLanguageResultExecution timeMemory
722598Yell0Gondola (IOI14_gondola)C++17
25 / 100
12 ms980 KiB
#include <bits/stdc++.h>
#include "gondola.h"
 
using namespace std;
const int MOD=1e9+9;
 
int valid(int n,int inputSeq[]) {
  int st=-1;
  vector<int> ogIdx(n+2);
  set<int> usedNew;
  for(int i=0;i<n;++i) {
    if(st<0&&inputSeq[i]<=n) {
      st=i;
      ogIdx[inputSeq[i]]=i;
      for(int j=1;j<n;++j) ogIdx[(inputSeq[i]-1+j)%n+1]=j;
    } else if(inputSeq[i]<=n) {
      if(ogIdx[inputSeq[i]]!=i) return 0;
    } else {
      if(usedNew.count(inputSeq[i])) return 0;
      usedNew.insert(inputSeq[i]);
    }
  }
  return 1;
}
 
int replacement(int n,int gondolaSeq[],int replacementSeq[]) {
  vector<pair<int,int>> news;
  vector<int> og(n);
  for(int i=0;i<n;++i) if(gondolaSeq[i]>n) news.push_back({gondolaSeq[i],i});
  sort(news.begin(),news.end());
  for(int i=0;i<n;++i) {
    if(gondolaSeq[i]<=n) {
      og[i]=gondolaSeq[i];
      for(int j=1;j<n;++j) og[(i+j)%n]=(og[i]-1+j)%n+1;
      break;
    }
  }
  int repi=0,currRep=n;
  for(int i=0;i<news.size();++i) {
    replacementSeq[repi++]=og[news[i].second];
    while(++currRep<news[i].first) replacementSeq[repi++]=currRep;
  }
  return repi;
}
 
int countReplacement(int n,int inputSeq[]) {return 0;}

Compilation message (stderr)

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:39:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |   for(int i=0;i<news.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...