Submission #428214

#TimeUsernameProblemLanguageResultExecution timeMemory
428214DaktoGondola (IOI14_gondola)C++17
55 / 100
288 ms4508 KiB
#include "gondola.h"
#include <bits/stdc++.h>

using namespace std;

int valid(int n, int inputSeq[])
{
    int begind=-1;
    map<int,int> m;
    for(int i=0; i<n; i++){
        if(m[inputSeq[i]]) return 0;
        m[inputSeq[i]]++;
        if(inputSeq[i]<=n){
            if(begind==-1){
                begind=(n+i-inputSeq[i]+1)%n;
            }
            else if((n+i-begind)%n+1!=inputSeq[i]) return 0;
        }
    }
    return 1;
}

//----------------------

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
    int begind=0;
    map<int,int> m;
    for(int i=0; i<n; i++){
        if(gondolaSeq[i]>n){
            m[gondolaSeq[i]]=i;
        }
        else begind=(n+i-gondolaSeq[i]+1)%n;
    }
    int c=n+1;
    for(auto i:m){
        int curr=(n+i.second-begind)%n+1;
        cerr<<i.first<<" "<<i.second<<endl;
        while(curr!=i.first){
            replacementSeq[c-n-1]=curr;
            curr=c;
            c++;
        }
    }
    return c-n-1;
}

//----------------------

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...