답안 #785064

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
785064 2023-07-17T03:57:46 Z mindiyak 곤돌라 (IOI14_gondola) C++14
55 / 100
26 ms 3004 KB
#include "gondola.h"
#include <iostream>
#include <unordered_set>
#include <set>

using namespace std;

#define M 1e9+9

int alpha = 0;

int valid(int n, int inputSeq[])
{
  unordered_set <int> broken;
  alpha = 0;
  for(int i=0;i<n;i++){
    if(inputSeq[i] < n){
      alpha = inputSeq[i]-i;
      break;
    }
  }
  // cout << alpha << endl;
  for(int i=0;i<n;i++){
    if(inputSeq[i] > n){
      if(broken.count(inputSeq[i]) != 0){
        // cout << "broken duplicate" << endl;
        return 0;
      }
      broken.insert(inputSeq[i]);
    }else{
      if(i<=(n-alpha)){
        if(inputSeq[i] != (i+alpha)){
          // cout << i << " " << inputSeq[i] << " " << (i+alpha) << endl;
          return 0;
        }
      }else{
        if(inputSeq[i] != (i-(n-alpha))){
          // cout << i << " " << inputSeq[i] << " " << (i-(n-alpha)) << endl;
          return 0;
        }
      }
    }
  }
  return 1;
}

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

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{ 
  set<pair<int,int>> arr;
  int len = 0;
  alpha = 1;
  for(int i=0;i<n;i++){
    if(gondolaSeq[i] <= n){
      alpha = gondolaSeq[i]-i;
      break;
    }
  }
  // cout << alpha << endl;
  for(int i=0;i<n;i++){
    if(gondolaSeq[i] > n){
      if(i<=(n-alpha)){
        arr.insert({gondolaSeq[i],(i+alpha)});
      }else{
        arr.insert({gondolaSeq[i],(i-(n-alpha))});
      }
    } 
  }
  while(arr.size() > 0){
    pair<int,int> a = *arr.begin();
    arr.erase(arr.begin());
    int c = a.first,d = a.second;
    // cout << a.first << " " << a.second << endl;
    replacementSeq[len] = d;
    len++;
    d = n+len;
    if(c!=d){
      arr.insert({c,d});
    }
  }
  return len;
}

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

int countReplacement(int n, int inputSeq[])
{
  return -3;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 3 ms 340 KB Output is correct
7 Correct 6 ms 596 KB Output is correct
8 Correct 5 ms 468 KB Output is correct
9 Correct 2 ms 340 KB Output is correct
10 Correct 6 ms 596 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 3 ms 340 KB Output is correct
7 Correct 6 ms 556 KB Output is correct
8 Correct 8 ms 468 KB Output is correct
9 Correct 2 ms 340 KB Output is correct
10 Correct 6 ms 632 KB Output is correct
11 Correct 0 ms 212 KB Output is correct
12 Correct 0 ms 212 KB Output is correct
13 Correct 3 ms 340 KB Output is correct
14 Correct 0 ms 212 KB Output is correct
15 Correct 6 ms 596 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 2 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 0 ms 212 KB Output is correct
5 Correct 0 ms 212 KB Output is correct
6 Correct 0 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 1 ms 340 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
11 Correct 6 ms 960 KB Output is correct
12 Correct 6 ms 1084 KB Output is correct
13 Correct 17 ms 2772 KB Output is correct
14 Correct 6 ms 980 KB Output is correct
15 Correct 26 ms 3004 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -