답안 #43783

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
43783 2018-03-23T18:02:25 Z PowerOfNinjaGo 곤돌라 (IOI14_gondola) C++14
55 / 100
29 ms 2440 KB
//Power Of Ninja Go
#include <bits/stdc++.h>
#ifdef atom
    #include "grader.cpp"
#else
    #include "gondola.h"
#endif
using namespace std;
typedef long long ll; typedef pair<int, int> ii;
#define X first
#define Y second
#define vi vector<int>
#define vii vector< ii >
#define pb push_back
int valid(int n, int arr[])
{
    vi vec;
    for(int i = 0; i< n; i++) vec.pb(arr[i]);
    sort(vec.begin(), vec.end()); vec.resize(unique(vec.begin(), vec.end())-vec.begin());
    if(vec.size() != n) return 0;
    for(int i = 0; i< n; i++) arr[i]--;
    vi tmp;
    for(int i = 0; i< n; i++) if(arr[i]< n) tmp.pb((arr[i]-i+n)%n);
    sort(tmp.begin(), tmp.end()); tmp.resize(unique(tmp.begin(), tmp.end())-tmp.begin());
    return (tmp.size()<= 1);
}
int replacement(int n, int arr[], int ans[])
{
    for(int i = 0; i< n; i++) arr[i]--;
    vi tmp;
    for(int i = 0; i< n; i++) if(arr[i]< n) tmp.pb((arr[i]-i+n)%n);
    sort(tmp.begin(), tmp.end()); tmp.resize(unique(tmp.begin(), tmp.end())-tmp.begin());
    int q = tmp.size();
    int st = q?tmp[0]:0;
    vii strange;
    for(int i = 0; i< n; i++) if(arr[i]>= n) strange.pb(ii(arr[i], (i+st)%n));
    sort(strange.begin(), strange.end());
    int ptr = 0;
    for(int i = 0; i< strange.size(); i++)
    {
        //printf("%d %d\n", strange[i].X, strange[i].Y);
        int prv = i?strange[i-1].X:n-1;
        int rounds = strange[i].X-prv;
        rounds--;
        ans[ptr++] = strange[i].Y+1;
        while(rounds--)
        {
            ans[ptr] = n+ptr;
            ptr++;
        }
    }
    return ptr;
}

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

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

Compilation message

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:20:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(vec.size() != n) return 0;
                   ^
gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:39:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i< strange.size(); i++)
                     ^
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 248 KB Output is correct
2 Correct 2 ms 352 KB Output is correct
3 Correct 2 ms 388 KB Output is correct
4 Correct 1 ms 404 KB Output is correct
5 Correct 2 ms 404 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 588 KB Output is correct
2 Correct 2 ms 588 KB Output is correct
3 Correct 2 ms 588 KB Output is correct
4 Correct 2 ms 588 KB Output is correct
5 Correct 2 ms 588 KB Output is correct
6 Correct 16 ms 1192 KB Output is correct
7 Correct 20 ms 1448 KB Output is correct
8 Correct 16 ms 1828 KB Output is correct
9 Correct 7 ms 1828 KB Output is correct
10 Correct 21 ms 2020 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 2020 KB Output is correct
2 Correct 1 ms 2020 KB Output is correct
3 Correct 1 ms 2020 KB Output is correct
4 Correct 1 ms 2020 KB Output is correct
5 Correct 1 ms 2020 KB Output is correct
6 Correct 11 ms 2020 KB Output is correct
7 Correct 21 ms 2020 KB Output is correct
8 Correct 16 ms 2020 KB Output is correct
9 Correct 10 ms 2020 KB Output is correct
10 Correct 29 ms 2060 KB Output is correct
11 Correct 2 ms 2060 KB Output is correct
12 Correct 1 ms 2060 KB Output is correct
13 Correct 10 ms 2060 KB Output is correct
14 Correct 2 ms 2060 KB Output is correct
15 Correct 27 ms 2060 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 2060 KB Output is correct
2 Correct 2 ms 2060 KB Output is correct
3 Correct 2 ms 2060 KB Output is correct
4 Correct 2 ms 2060 KB Output is correct
5 Correct 1 ms 2060 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 2060 KB Output is correct
2 Correct 2 ms 2060 KB Output is correct
3 Correct 2 ms 2060 KB Output is correct
4 Correct 2 ms 2060 KB Output is correct
5 Correct 2 ms 2060 KB Output is correct
6 Correct 1 ms 2060 KB Output is correct
7 Correct 2 ms 2060 KB Output is correct
8 Correct 2 ms 2060 KB Output is correct
9 Correct 3 ms 2060 KB Output is correct
10 Correct 2 ms 2060 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 2060 KB Output is correct
2 Correct 2 ms 2060 KB Output is correct
3 Correct 2 ms 2060 KB Output is correct
4 Correct 1 ms 2060 KB Output is correct
5 Correct 2 ms 2060 KB Output is correct
6 Correct 2 ms 2060 KB Output is correct
7 Correct 2 ms 2060 KB Output is correct
8 Correct 2 ms 2060 KB Output is correct
9 Correct 2 ms 2060 KB Output is correct
10 Correct 2 ms 2060 KB Output is correct
11 Correct 14 ms 2060 KB Output is correct
12 Correct 22 ms 2060 KB Output is correct
13 Correct 17 ms 2060 KB Output is correct
14 Correct 14 ms 2060 KB Output is correct
15 Correct 24 ms 2440 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 2440 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 2440 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 2 ms 2440 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 2440 KB Integer -3 violates the range [0, 1000000008]
2 Halted 0 ms 0 KB -