Submission #563093

#TimeUsernameProblemLanguageResultExecution timeMemory
563093shahriarkhanGondola (IOI14_gondola)C++14
55 / 100
38 ms4584 KiB
#include "gondola.h"
#include<bits/stdc++.h>
using namespace std ;

int valid(int n, int inputSeq[])
{
    int idx = -1 , cur = 0 ;
    map<int,int> vis ;
    for(int i = 0 ; i < n ; ++i)
    {
        if(vis[inputSeq[i]]) return 0 ;
        vis[inputSeq[i]] = 1 ;
    }
    for(int i = 0 ; i < n ; ++i)
    {
        if(inputSeq[i]<=n)
        {
            idx = i ;
            cur = inputSeq[i] - 1 ;
            break ;
        }
    }
    if(idx<0) return 1 ;
    for(int i = idx ; i < n ; ++i)
    {
        if((inputSeq[i]<=n) && (inputSeq[i]!=(cur+1))) return 0 ;
        cur = (cur+1)%n ;
    }
    return 1 ;
}


int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
    vector<pair<int,int> > v ;
    vector<int> ans ;
    int cur = 0 , idx = 0 ;
    for(int i = 0 ; i < n ; ++i)
    {
        if(gondolaSeq[i]<=n)
        {
            idx = i ;
            cur = gondolaSeq[i] - 1 ;
            break ;
        }
    }
    for(int i = idx ; i < n ; ++i)
    {
        if(gondolaSeq[i]>n)
        {
            v.push_back({gondolaSeq[i],cur+1}) ;
        }
        cur = (cur+1)%n ;
    }
    for(int i = 0 ; i < idx ; ++i)
    {
        if(gondolaSeq[i]>n)
        {
            v.push_back({gondolaSeq[i],cur+1}) ;
        }
        cur = (cur+1)%n ;
    }
    sort(v.begin(),v.end()) ;
    cur = n ;
    for(pair<int,int> p : v)
    {
        ans.push_back(p.second) , ++cur ;
        while(cur<p.first)
        {
            ans.push_back(cur) ;
            ++cur ;
        }
    }
    int siz = ans.size() ;
    for(int i = 0 ; i < siz ; ++i)
    {
        replacementSeq[i] = ans[i] ;
    }
    return siz ;
}

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