답안 #1041217

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1041217 2024-08-01T17:56:31 Z DeathIsAwe 곤돌라 (IOI14_gondola) C++14
75 / 100
16 ms 5740 KB
#include "gondola.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long

int valid(int n, int inputSeq[]) {
  unordered_set<int> dupcheck;
  for (int i=0;i<n;i++) {
    dupcheck.insert(inputSeq[i]);
  }
  if (dupcheck.size() < n) {
    return 0;
  }
  int start = -1, temp;
  for (int i=0;i<n;i++) {
    if (inputSeq[i] <= n) {
      start = i; 
      break;
    }
  }
  if (start == -1) {
    return 1;
  } else {
    for (int i=start+1;i<n;i++) {
      if (inputSeq[i] <= n) {
        temp = (inputSeq[i] - inputSeq[start] + n) % n;
        if (temp != i - start) {
          return 0;
        }
        start = i;
      }
    }
  }
  return 1;
}





int replacement(int n, int gondolaSeq[], int replacementSeq[]) {
  int temp;
  for (int i=0;i<n;i++) {
    if (gondolaSeq[i] <= n) {
      temp = gondolaSeq[i] - i;
      break;
    }
  }
  vector<pair<int,int>> bruh;
  for (int i=0;i<n;i++) {
    if (gondolaSeq[i] > n) {
      bruh.push_back(make_pair(gondolaSeq[i], i));
    }
  }
  sort(bruh.begin(), bruh.end());
  int tracker = 0;
  for (pair<int,int> i: bruh) {
    replacementSeq[tracker++] = (i.second + temp + n) % n;
    if (replacementSeq[tracker - 1] == 0) {
      replacementSeq[tracker - 1] = n;
    }
    while (tracker + n < i.first) {
      replacementSeq[tracker] = tracker + n;
      tracker++;
    }
  }
  return tracker;
}





int countReplacement(int n, int inputSeq[]) {
  if (valid(n, inputSeq) == 0) {
    return 0;
  }
  vector<int> overs;
  for (int i=0;i<n;i++) {
    if (inputSeq[i] > n) {
      overs.push_back(inputSeq[i]);
    }
  }
  sort(overs.begin(),overs.end());
  int siz = overs.size(), below = n;
  ll ans = 1;
  for (int i=0;i<siz;i++) {
    for (int j=below + 1;j<overs[i];j++) {
      ans *= (ll)(siz - i);
      ans %= 1000000009;
    }
    below = overs[i];
  }
  return ans;
}

Compilation message

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:11:23: warning: comparison of integer expressions of different signedness: 'std::unordered_set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   11 |   if (dupcheck.size() < n) {
      |       ~~~~~~~~~~~~~~~~^~~
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:58:43: warning: 'temp' may be used uninitialized in this function [-Wmaybe-uninitialized]
   58 |     replacementSeq[tracker++] = (i.second + temp + n) % n;
      |                                  ~~~~~~~~~^~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 4 ms 2232 KB Output is correct
7 Correct 10 ms 3924 KB Output is correct
8 Correct 7 ms 3948 KB Output is correct
9 Correct 2 ms 1720 KB Output is correct
10 Correct 8 ms 4460 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 4 ms 2232 KB Output is correct
7 Correct 10 ms 3948 KB Output is correct
8 Correct 7 ms 3948 KB Output is correct
9 Correct 2 ms 1672 KB Output is correct
10 Correct 8 ms 4348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 5 ms 2232 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 12 ms 5740 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 400 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 1 ms 452 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 472 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 7 ms 1116 KB Output is correct
12 Correct 6 ms 1116 KB Output is correct
13 Correct 7 ms 1516 KB Output is correct
14 Correct 4 ms 1112 KB Output is correct
15 Correct 10 ms 2480 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 396 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 344 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 16 ms 3948 KB Output is correct
10 Correct 11 ms 3432 KB Output is correct
11 Correct 5 ms 1884 KB Output is correct
12 Correct 6 ms 1884 KB Output is correct
13 Incorrect 2 ms 604 KB Output isn't correct
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 444 KB Output is correct
3 Correct 0 ms 444 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 440 KB Output is correct
7 Correct 0 ms 344 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 14 ms 4160 KB Output is correct
10 Correct 15 ms 3436 KB Output is correct
11 Correct 5 ms 1720 KB Output is correct
12 Correct 5 ms 1884 KB Output is correct
13 Incorrect 2 ms 604 KB Output isn't correct
14 Halted 0 ms 0 KB -