제출 #529894

#제출 시각아이디문제언어결과실행 시간메모리
529894gg123_peGondola (IOI14_gondola)C++14
20 / 100
10 ms2144 KiB
#include <bits/stdc++.h>
#include "gondola.h"
using namespace std; 

#define f(i,a,b) for(int i = a; i < b; i++)
const int N = 250005; 

int cant[N], m[N]; 
bool on[N];

int valid(int n, int X[]){
    f(i,0,n) cant[X[i]]++; 
    int ct = 0, id; 
    f(i,1,N) {
        if(cant[i] > 1) return 0;
        if(i <= n and cant[i]) ct++;
    }
    if(ct == 0) return 1; 
    f(i,0,n) if(X[i] <= n) id = i; 
    vector <int> a, v1, v2;

    int pr = X[id]-1;
    f(i,0,n-id){
        pr++; 
        if(pr == n+1) pr = 1;
        v2.push_back(pr);
    }
    f(i,0,id){
        pr++; 
        if(pr == n+1) pr = 1;
        v1.push_back(pr); 
    }
    for(int x: v1) a.push_back(x);
    for(int x: v2) a.push_back(x);
    int ans = 1; 
    f(i,0,n) if(X[i] <= n and a[i] != X[i]) ans = 0;
    return ans; 
}

int replacement(int n, int X[], int res[]){
    int id = -1; 
    f(i,0,n) if(X[i] <= n) id = i;
    vector <int> a, v1, v2;

    if(id != -1){ 
        vector <int> a, v1, v2;
        int pr = X[id]-1;
        f(i,0,n-id){
            pr++; 
            if(pr == n+1) pr = 1;
            v2.push_back(pr);
        }
        f(i,0,id){
            pr++; 
            if(pr == n+1) pr = 1;
            v1.push_back(pr); 
        }
        for(int x: v1) a.push_back(x);
        for(int x: v2) a.push_back(x);
    }
    else f(i,0,n) a.push_back(i+1);

    int maxi = 0; 
    f(i,0,n) {
        if(X[i] > n) m[X[i]] = a[i], on[X[i]] = 1;
        maxi = max(maxi, X[i]);
    }
    vector <int> ans; 
    id = n+1;
    while(id <= maxi){
        int l = id;
        while(!on[id]) id++;
        ans.push_back(m[id]);
        f(i,l,id) ans.push_back(i);
        id++;  
    }
    int l = ans.size();
    f(i,0,l) res[i] = ans[i];
    return l;
}

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

컴파일 시 표준 에러 (stderr) 메시지

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:22:16: warning: 'id' may be used uninitialized in this function [-Wmaybe-uninitialized]
   22 |     int pr = X[id]-1;
      |                ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...