제출 #798677

#제출 시각아이디문제언어결과실행 시간메모리
798677LiudasGondola (IOI14_gondola)C++17
60 / 100
25 ms5332 KiB
#include <bits/stdc++.h>
#include "gondola.h"
using namespace std;
int valid(int N, int seq[]){
    vector<int> s(2 * N);
    set<int> ss;
    int val = true;
    for(int i = 0; i < N; i ++){
        ss.insert(seq[i]);
        s[i] = seq[i];
        s[i + N] = seq[i];
    }
    if(ss.size()!=N)val = false;
    int start = min_element(s.begin(), s.begin() + N) - s.begin();
    int k = *min_element(s.begin(), s.begin() + N);
    for(int i = start; i < start + N; i ++, k ++){
        if(s[i] <= N && s[i] != k){
            val = false;
        }
    }
    return val;
}
int replacement(int N, int seq[], int rseq[]){
    vector<int> s(2 * N), ss(2 * N);
    vector<pair<int, int>> arr(N);
    for(int i = 0; i < N; i ++){
        s[i] = seq[i];
        s[N+i] = seq[i];
    }
    int k = min_element(s.begin(), s.begin() + N) - s.begin();
    int t = *min_element(s.begin(), s.begin() + N);
    for(int i = k; i < k + N; i ++){
        ss[i] = (t-1)%N+1;
        t++;
    }
    for(int i = k; i < k + N; i ++){
        arr[i-k] = {s[i], ss[i]};
    }
    int p = 0;
    int last = N;
    sort(arr.begin(), arr.end());
    for(int i = 0; i < N; i ++){
        //cout << arr[i].first << " " << arr[i].second << " " << p <<endl;
        if(arr[i].first > N){
            rseq[p++] = arr[i].second;
            for(;++last< arr[i].first;){
                rseq[p++] = last;
            }
        }
    }
    return p;
}
int countReplacement(int N, int seq[]){
    int check = valid(N, seq);
    if(!check)return 0;
    return 1;
}

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

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:13:17: warning: comparison of integer expressions of different signedness: 'std::set<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   13 |     if(ss.size()!=N)val = false;
      |        ~~~~~~~~~^~~
#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...