답안 #73245

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
73245 2018-08-28T05:53:26 Z Batmend4 곤돌라 (IOI14_gondola) C++
55 / 100
28 ms 2568 KB
#include "gondola.h"
#include <iostream>
#include<cstdio>
#include<vector>
#include<bits/stdc++.h>
using namespace std;

int valid(int n, int inputSeq[])
{
    map< int, bool> m;
    bool lol = 1;
    int ind = -1;
    for( int i = 0 ; i < n ; i++ ){
        if( inputSeq[i] <= n ){
            lol = 0;
            ind = i;
        }
        if( inputSeq[i] > n ){
            if( m[inputSeq[i]] == 1 ) return 0;
            m[inputSeq[i]] = 1;
        }
    }
    if( lol == 1 ){
        return 1;
    }
    int ct[n + 5];
    int nn = n + inputSeq[ind] - 1 - ind;
    for( int i = 0 ; i < n ; i++ ){
        ct[(nn + i) % n] = inputSeq[i];
    }
    
    for( int i = 0 ; i < n ; i++ ){
        if( ct[i] <= n ){
            if( i != ct[i] - 1 ){
                return 0;
            }
        }
    }
    return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
    int ind = -1;
    int ct[n + 5];
    vector< pair<int, int> >v;
    for( int i = 0 ; i < n ; i++ ){
        if( gondolaSeq[i] <= n ){
            ind = i;
        }
    }
    int nn = n + gondolaSeq[ind] - 1 - ind;
    for( int i = 0 ; i < n ; i++ ){
        ct[(nn + i) % n] = gondolaSeq[i];
    }
    for( int i = 0 ; i < n ; i++ ){
        v.push_back( make_pair(ct[i], i));
    }
    sort( v.begin(), v.end());
    
    int pos = 0;
    for( int i = 0 ; i < n ; i++ ){
        int ct1 = v[i].first;
        if( ct1 <= n ) continue;
        if( i == 0 ){
            replacementSeq[pos] = v[0].second + 1;
            pos++;
            for( int ii = n + 1 ; ii < v[0].first ; ii++ ){
                replacementSeq[pos] = ii;
                pos++;
            }
            continue;
        }
        if( v[i - 1].first <= n ){
            replacementSeq[pos] = v[i].second + 1;
            pos++;
            for( int ii = n + 1 ; ii < v[i].first ; ii++ ){
                replacementSeq[pos] = ii;
                pos++;
            }
            continue;
        }
        replacementSeq[pos] = v[i].second + 1;
        pos++;
        for( int ii = v[i-1].first + 1 ; ii < v[i].first ; ii++ ){
            replacementSeq[pos] = ii;
            pos++;
        }
        
    }
    return pos;
}

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

int countReplacement(int n, int inputSeq[])
{
  return -3;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 3 ms 464 KB Output is correct
3 Correct 3 ms 464 KB Output is correct
4 Correct 1 ms 464 KB Output is correct
5 Correct 2 ms 596 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 596 KB Output is correct
2 Correct 2 ms 596 KB Output is correct
3 Correct 2 ms 596 KB Output is correct
4 Correct 2 ms 596 KB Output is correct
5 Correct 2 ms 596 KB Output is correct
6 Correct 8 ms 880 KB Output is correct
7 Correct 17 ms 1236 KB Output is correct
8 Correct 14 ms 1236 KB Output is correct
9 Correct 8 ms 1236 KB Output is correct
10 Correct 14 ms 1236 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1236 KB Output is correct
2 Correct 2 ms 1236 KB Output is correct
3 Correct 2 ms 1236 KB Output is correct
4 Correct 2 ms 1236 KB Output is correct
5 Correct 2 ms 1236 KB Output is correct
6 Correct 6 ms 1236 KB Output is correct
7 Correct 17 ms 1236 KB Output is correct
8 Correct 18 ms 1236 KB Output is correct
9 Correct 6 ms 1236 KB Output is correct
10 Correct 14 ms 1236 KB Output is correct
11 Correct 3 ms 1236 KB Output is correct
12 Correct 3 ms 1236 KB Output is correct
13 Correct 28 ms 2412 KB Output is correct
14 Correct 2 ms 2412 KB Output is correct
15 Correct 28 ms 2412 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 2412 KB Output is correct
2 Correct 2 ms 2412 KB Output is correct
3 Correct 3 ms 2412 KB Output is correct
4 Correct 2 ms 2412 KB Output is correct
5 Correct 2 ms 2412 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 2412 KB Output is correct
2 Correct 2 ms 2412 KB Output is correct
3 Correct 2 ms 2412 KB Output is correct
4 Correct 2 ms 2412 KB Output is correct
5 Correct 3 ms 2412 KB Output is correct
6 Correct 2 ms 2412 KB Output is correct
7 Correct 3 ms 2412 KB Output is correct
8 Correct 4 ms 2412 KB Output is correct
9 Correct 3 ms 2412 KB Output is correct
10 Correct 3 ms 2412 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 2412 KB Output is correct
2 Correct 2 ms 2412 KB Output is correct
3 Correct 3 ms 2412 KB Output is correct
4 Correct 2 ms 2412 KB Output is correct
5 Correct 3 ms 2412 KB Output is correct
6 Correct 2 ms 2412 KB Output is correct
7 Correct 3 ms 2412 KB Output is correct
8 Correct 3 ms 2412 KB Output is correct
9 Correct 3 ms 2412 KB Output is correct
10 Correct 3 ms 2412 KB Output is correct
11 Correct 21 ms 2412 KB Output is correct
12 Correct 18 ms 2448 KB Output is correct
13 Correct 20 ms 2448 KB Output is correct
14 Correct 18 ms 2448 KB Output is correct
15 Correct 25 ms 2568 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 2568 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 2568 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 2568 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 2568 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -