제출 #1032884

#제출 시각아이디문제언어결과실행 시간메모리
1032884vjudge1곤돌라 (IOI14_gondola)C++17
55 / 100
15 ms6256 KiB
#include "gondola.h"

#include<bits/stdc++.h>
using namespace std;

int valid(int n, int inputSeq[])
{
    int ind[n+1];
    for(int i=0;i<=n;i++)ind[i]=-1;
    unordered_set<int>seen;
    for(int i=0;i<n;i++){
        if(seen.count(inputSeq[i]))return 0;
        seen.insert(inputSeq[i]);
        if(inputSeq[i]<=n){
            ind[inputSeq[i]]=i;
        }
    }
    int val=-1,beg;
    for(int i=1;i<=n;i++){
        if(ind[i]!=-1){
            val=i;
            beg=ind[i];
            break;
        }
    }
    if(val==-1)return 1;
    for(int j=(beg+1)%n;j!=beg;j=(j+1)%n){
        val++;
        if(inputSeq[j]==val)continue;
        if(inputSeq[j]<=n)return 0;
    }
    return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
    #define a gondolaSeq 
    #define b replacementSeq 
    int ind[n+1];
    for(int i=0;i<=n;i++)ind[i]=-1;
    for(int i=0;i<n;i++){
        if(a[i]<=n){
            ind[a[i]]=i;
        }
    }
    int val=1,beg=0;
    for(int i=1;i<=n;i++){
        if(ind[i]!=-1){
            val=i;
            beg=ind[i];
            break;
        }
    }
    int begval[n];
    begval[beg]=val;
    for(int j=(beg+1)%n;j!=beg;j=(j+1)%n){
        val++;
        if(n<val)val-=n;
        begval[j]=val;
    }
    int place=0;
    int cur=n+1;
    int p[n];
    for(int i=0;i<n;i++){
        p[i]=i;
    }
    sort(p,p+n,[&](int i,int j)->bool {
        return a[i]<a[j];
    });
    for(int i=0;i<n;i++){
        int pp=p[i];
        while(begval[pp]<a[pp]){
            b[place++]=begval[pp];
            begval[pp]=cur++;
        }
    }
    return place;
}

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

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