제출 #843649

#제출 시각아이디문제언어결과실행 시간메모리
843649Warinchai곤돌라 (IOI14_gondola)C++14
25 / 100
33 ms5204 KiB
#include "gondola.h"
#include<bits/stdc++.h>
using namespace std;
int valid(int n, int s[])
{
    map<int,int>mp;
    int prev=0,count=0;
    int first=0;
    int mn=INT_MAX;
    int idm=0;
    for(int i=0;i<n;i++){
        mp[s[i]]++;
        if(mp[s[i]]>1){
            return 0;
        }
        if(s[i]<=n){
            if(first==0){
                first=s[i];
            }
            if(s[i]<mn){
                mn=s[i];
                idm=i;
            }
            if(s[i]<prev){
                count++;
            }
            prev=s[i];
        }
    }
    if(first<prev){
        count++;
    }
    if(count>1){
        return 0;
    }
    for(int i=idm;i<idm+n&&first+i-idm<=n;i++){
        int id=i%n;
        if(s[id]<=n){
            if(s[id]!=mn+i-idm){
                return 0;
            }
        }
    }
    return 1;
}

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

int replacement(int n, int seq[], int re[])
{
    int mn=INT_MAX,id=0;
    for(int i=0;i<n;i++){
        if(seq[i]<mn&&seq[i]<=n){
            id=i;
            mn=seq[i];
        }
    }
    vector<pair<int,int> >v;
    for(int i=id;i<id+n;i++){
        int ci=i-id+mn;
        if(ci>n){
            ci-=n;
        }
        if(seq[i%n]>ci){
            v.push_back({seq[i%n],ci});
        }
    }
    sort(v.begin(),v.end());
    int cur=n+1;
    int curid=0;
    int l=0;
    for(int i=0;i<v.size();i++){
        int st=v[i].second;
        int en=v[i].first;
        re[curid]=st;
        curid++;
        l++;
        for(;cur<en;cur++){
            re[curid]=cur;
            curid++;
            l++;
        }
    }
    return l;
}

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

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

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

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:72:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |     for(int i=0;i<v.size();i++){
      |                 ~^~~~~~~~~
#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...