답안 #1004848

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1004848 2024-06-21T19:11:36 Z u_suck_o 곤돌라 (IOI14_gondola) C++17
55 / 100
11 ms 2304 KB
#include "bits/stdc++.h"
#include "gondola.h"

using namespace std;

int valid(int n, int inputSeq[])
{
    bool seen[250001];
    memset(seen, 0, sizeof seen);
    bool found = false;
    int diff = -1;
    for (int i = 0; i < n; i++) {
        if (seen[inputSeq[i]]) return 0;
        seen[inputSeq[i]] = true;
        if (inputSeq[i] > n) continue;
        if (!found) {
            found = true;
            diff = (inputSeq[i] - i + n) % n;
        } else {
            if ((inputSeq[i] - i + n) % n != diff)
                return 0;
        }
    }
    return 1;
}

int replacement(int n, int gondolaSeq[], int replacementSeq[])
{
    int diff = 0;
    for (int i = 0; i < n; i++) {
        if (gondolaSeq[i] <= n) {
            diff = (gondolaSeq[i] - i + n) % n;
            break;
        }
    }
    
    vector<pair<int, int>> v;
    for (int i = 0; i < n; i++) {
        if (gondolaSeq[i] > n) {
            int x = (i+diff) % n;
            if (x == 0) x = n;
            v.push_back({gondolaSeq[i], x});
        }
    }
    sort(v.begin(), v.end());
    int last = n; //last assigned gondola #
    vector<int> rep;
    for (int i = 0; i < v.size(); i++) {
        rep.push_back(v[i].second); //v[i].second replaced with last+1
        for (int j = last+1; j < v[i].first; j++)
            rep.push_back(j); //j replaced with j+1
        last = v[i].first;
    }
    for (int i = 0; i < rep.size(); i++)
        replacementSeq[i] = rep[i];
    return rep.size();
}

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

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

Compilation message

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:48:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     for (int i = 0; i < v.size(); i++) {
      |                     ~~^~~~~~~~~~
gondola.cpp:54:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |     for (int i = 0; i < rep.size(); i++)
      |                     ~~^~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 604 KB Output is correct
2 Correct 0 ms 604 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 604 KB Output is correct
5 Correct 0 ms 604 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 604 KB Output is correct
2 Correct 0 ms 604 KB Output is correct
3 Correct 0 ms 604 KB Output is correct
4 Correct 0 ms 604 KB Output is correct
5 Correct 0 ms 604 KB Output is correct
6 Correct 2 ms 604 KB Output is correct
7 Correct 6 ms 916 KB Output is correct
8 Correct 5 ms 856 KB Output is correct
9 Correct 2 ms 604 KB Output is correct
10 Correct 5 ms 860 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 604 KB Output is correct
2 Correct 1 ms 604 KB Output is correct
3 Correct 1 ms 604 KB Output is correct
4 Correct 1 ms 604 KB Output is correct
5 Correct 0 ms 604 KB Output is correct
6 Correct 2 ms 604 KB Output is correct
7 Correct 5 ms 860 KB Output is correct
8 Correct 6 ms 860 KB Output is correct
9 Correct 1 ms 600 KB Output is correct
10 Correct 5 ms 860 KB Output is correct
11 Correct 0 ms 604 KB Output is correct
12 Correct 0 ms 604 KB Output is correct
13 Correct 3 ms 600 KB Output is correct
14 Correct 1 ms 604 KB Output is correct
15 Correct 5 ms 860 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
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 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 1 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 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 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 344 KB Output is correct
8 Correct 1 ms 348 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 5 ms 1116 KB Output is correct
12 Correct 6 ms 1116 KB Output is correct
13 Correct 8 ms 1628 KB Output is correct
14 Correct 5 ms 968 KB Output is correct
15 Correct 11 ms 2304 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 344 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -