답안 #70079

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
70079 2018-08-22T10:20:55 Z zubec 곤돌라 (IOI14_gondola) C++14
20 / 100
24 ms 6552 KB
#include "gondola.h"
#include <bits/stdc++.h>
using namespace std;

const int N = 100100;

int a[N];

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

    map<int, int> mp1;
    map<int, int> used, used2;
    for (int i = 1; i <= n; i++){
        a[i] = inputSeq[i-1];
        if (a[i] > n){
            if (++mp1[a[i]] > 1)
                return 0;
        }
    }
    a[n+1] = a[1];
    int prev = 0;
    for (int i = 1; i <= n; i++){
        if (used.find(a[i+1]) != used.end())
            a[i+1] = used[a[i+1]];
        if (a[i] > n)
            continue;
        if (a[i+1] > n){
            if (a[i] == n){
                if (used2.find(1) != used2.end())
                    return 0;
                used[a[i+1]] = 1;
                used2[1] = a[i+1];
                a[i+1] = 1;
            } else {
                if (used2.find(a[i]+1) != used2.end())
                    return 0;
                used[a[i+1]] = a[i]+1;
                used2[a[i]+1] = a[i+1];
                a[i+1] = a[i]+1;
            }
        } else {
            if (a[i] == n){
                if (a[i+1] != 1)
                    return 0;
            } else {
                if (a[i+1] != a[i] + 1)
                    return 0;
            }
        }
    }
    for (int i = n+1; i > 1; i--){
        if (used.find(a[i-1]) != used.end())
            a[i-1] = used[a[i-1]];
        if (a[i] > n)
            continue;
        if (a[i-1] > n){
            if (a[i] == 1){
                if (used2.find(n) != used2.end())
                    return 0;
                used[a[i-1]] = n;
                used2[n] = a[i-1];
                a[i-1] = n;
            } else {
                if (used2.find(a[i]-1) != used2.end())
                    return 0;
                used[a[i-1]] = a[i]-1;
                used2[a[i]-1] = a[i-1];
                a[i-1] = a[i]-1;
            }
        } else {
            if (a[i] == 1){
                if (a[i-1] != n)
                    return 0;
            } else {
                if (a[i-1] != a[i] - 1)
                    return 0;
            }
        }
    }

    return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[]){
  return -2;
}

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

int countReplacement(int n, int inputSeq[]){
  return -3;
}

Compilation message

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:21:9: warning: unused variable 'prev' [-Wunused-variable]
     int prev = 0;
         ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 248 KB Output is correct
2 Correct 2 ms 360 KB Output is correct
3 Correct 2 ms 400 KB Output is correct
4 Correct 2 ms 404 KB Output is correct
5 Correct 3 ms 408 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 456 KB Output is correct
2 Correct 2 ms 536 KB Output is correct
3 Correct 2 ms 536 KB Output is correct
4 Correct 2 ms 544 KB Output is correct
5 Correct 3 ms 568 KB Output is correct
6 Correct 8 ms 1144 KB Output is correct
7 Correct 19 ms 1976 KB Output is correct
8 Correct 14 ms 2244 KB Output is correct
9 Correct 6 ms 2244 KB Output is correct
10 Correct 16 ms 2928 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 2928 KB Output is correct
2 Correct 4 ms 2928 KB Output is correct
3 Correct 4 ms 2928 KB Output is correct
4 Correct 2 ms 2928 KB Output is correct
5 Correct 3 ms 2928 KB Output is correct
6 Correct 9 ms 2928 KB Output is correct
7 Correct 20 ms 3676 KB Output is correct
8 Correct 15 ms 4008 KB Output is correct
9 Correct 6 ms 4008 KB Output is correct
10 Correct 15 ms 4668 KB Output is correct
11 Correct 2 ms 4668 KB Output is correct
12 Correct 3 ms 4668 KB Output is correct
13 Correct 24 ms 6172 KB Output is correct
14 Correct 2 ms 6172 KB Output is correct
15 Correct 24 ms 6552 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 6552 KB Integer -2 violates the range [0, 350000]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 6552 KB Integer -2 violates the range [0, 350000]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 6552 KB Integer -2 violates the range [0, 350000]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 6552 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 6552 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 6552 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 6552 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -