제출 #853894

#제출 시각아이디문제언어결과실행 시간메모리
853894abcvuitunggio자동 인형 (IOI18_doll)C++17
100 / 100
85 ms15312 KiB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;
const int INF=1e9;
vector <int> c,x,y,ve,o;
int n,sz=1,id,pos[1000001];
int f(int l, int r){
    if (ve[l]==-1&&ve[r]==-1)
        return INF;
    if (l==r)
        return ve[l];
    int mid=(l+r)>>1,left=f(l,mid),right=f(mid+1,r);
    x.push_back(left);
    y.push_back(right);
    id--;
    return id;
}
vector <int> rearrange(int l, int r){
    if (l==r)
        return {l};
    int mid=(l+r)>>1;
    auto vl=rearrange(l,mid);
    auto vr=rearrange(mid+1,r);
    vector <int> ve;
    for (int i=0;i<vl.size();i++){
        ve.push_back(vl[i]);
        ve.push_back(vr[i]);
    }
    return ve;
}
void create_circuit(int M, vector <int> A){
    A.push_back(0);
    n=A.size();
    while (sz<n)
        sz*=2;
    ve=rearrange(0,sz-1);
    for (int i=0;i<sz;i++)
        pos[ve[i]]=i;
    for (int i=0;i<sz-n;i++)
        ve[i]=-1;
    int j=-1;
    for (int i:A){
        j++;
        while (pos[j]<sz-n)
            j++;
        ve[pos[j]]=i;
    }
    f(0,sz-1);
    for (int &i:x)
        if (i==INF)
            i=id;
    for (int i=0;i<=M;i++)
        c.push_back(id);
    answer(c,x,y);
}

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

doll.cpp: In function 'std::vector<int> rearrange(int, int)':
doll.cpp:25:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |     for (int i=0;i<vl.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...