답안 #212654

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
212654 2020-03-24T00:01:36 Z mohamedsobhi777 곤돌라 (IOI14_gondola) C++14
25 / 100
18 ms 1920 KB
#include <bits/stdc++.h>
#include "gondola.h"
using namespace std ; 

const int N = 3e5 + 7 ; 

int valid(int n, int inputSeq[]){

    vector<int> vis(N , 0) ; 
    int cur = inputSeq[0] -1  ; 
    for(int i = 0 ; i < n; i++){
        if(vis[inputSeq[i]]++)return 0 ; 
        if(--inputSeq[i]!=cur)
            return 0 ; 
        cur = (cur+1) %n ; 
    }
    return 1 ; 
}

int ab[N] ; 

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
    int proto[N] ; 
    for(int i = 0 ; i <n; i++)proto[i] = i+1 ; 

    for(int i =  0 ; i <n; i++){
        if(gondolaSeq[i] <=n){
            int k = gondolaSeq[i] +1; 
            proto[i] = gondolaSeq[i] ; 
            if(k==n+1)k=1 ;
            for(int j = 1 ; j < n ;j++){
                int loc = (i+j)%n; 
                proto[loc] = k++ ; 
                if(k==n+1)k = 1 ; 
            }          
            break;
        }
    }
    int bad = 0 ; 
    priority_queue<pair<int , int > > q ;
    int mx = 0 ;
    for(int i = 0 ; i< n;i ++){
        q.push({gondolaSeq[i] , i}) ;
        ab[gondolaSeq[i]] = -1 ;  
        mx = max(mx , gondolaSeq[i]) ; 
        bad+=(gondolaSeq[i]>n) ; 
    }
    int cabs = mx ;
    int cur = 0 ; 
    while(q.size()){
        int tp = q.top().first; 
        int ix = q.top().second ; 
        int hope = proto[ix] ; 
        if(tp==n)break;
        ab[tp] = -1 ; 
        while(ab[cabs]==-1){
            cabs--; 
        }
        if(bad>1){
            replacementSeq[cur++] = hope ; 
            bad-- ; 
            q.pop(); 
            q.push({hope , ix}) ; 
        }   
        else {
            replacementSeq[cur++] = cabs ; 
            q.pop() ;
            q.push({cabs , ix}) ;  
            cabs-- ; 
        }
    }
    reverse(replacementSeq , replacementSeq + cur) ; 
    return cur ; 
}

int countReplacement(int n, int inputSeq[])
{
  return -3;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 1536 KB Output is correct
2 Correct 5 ms 1536 KB Output is correct
3 Correct 6 ms 1536 KB Output is correct
4 Correct 5 ms 1536 KB Output is correct
5 Correct 5 ms 1536 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 1536 KB Output is correct
2 Correct 5 ms 1536 KB Output is correct
3 Correct 5 ms 1408 KB Output is correct
4 Correct 5 ms 1536 KB Output is correct
5 Correct 5 ms 1536 KB Output is correct
6 Correct 10 ms 1664 KB Output is correct
7 Correct 18 ms 1792 KB Output is correct
8 Correct 15 ms 1792 KB Output is correct
9 Correct 8 ms 1536 KB Output is correct
10 Correct 17 ms 1792 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 1536 KB Output is correct
2 Correct 5 ms 1536 KB Output is correct
3 Correct 5 ms 1536 KB Output is correct
4 Correct 5 ms 1536 KB Output is correct
5 Correct 5 ms 1536 KB Output is correct
6 Correct 10 ms 1664 KB Output is correct
7 Correct 17 ms 1792 KB Output is correct
8 Correct 15 ms 1792 KB Output is correct
9 Correct 8 ms 1536 KB Output is correct
10 Correct 17 ms 1920 KB Output is correct
11 Correct 5 ms 1536 KB Output is correct
12 Correct 5 ms 1536 KB Output is correct
13 Correct 10 ms 1664 KB Output is correct
14 Correct 5 ms 1536 KB Output is correct
15 Correct 18 ms 1920 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 5 ms 384 KB Output is correct
3 Correct 4 ms 384 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 4 ms 384 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Incorrect 5 ms 384 KB Integer 977 violates the range [1, 975]
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 384 KB Output is correct
2 Correct 4 ms 384 KB Output is correct
3 Correct 4 ms 384 KB Output is correct
4 Correct 4 ms 384 KB Output is correct
5 Correct 5 ms 384 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Incorrect 5 ms 384 KB Integer 977 violates the range [1, 975]
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 384 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 360 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 384 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 4 ms 384 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -