제출 #369128

#제출 시각아이디문제언어결과실행 시간메모리
369128denkendoemeer자동 인형 (IOI18_doll)C++14
100 / 100
95 ms10400 KiB
#include "doll.h"
#include<bits/stdc++.h>
using namespace std;
const int inf=2e9;
void create_circuit(int m,vector<int>a)
{
    a.push_back(0);
    int n=a.size(),sz=1,cnt=0;
    while(sz<n)
        sz=sz*2,cnt++;
    vector<int>ans(sz*2);
    vector<int>v(sz);
    int i,j=0;
    for(i=0;i<sz;i++)
        ans[i+sz]=inf;
    int aux=0;
    for(i=0;i<sz;i++)
        v[i]=v[i/2]/2|((i&1)<<(cnt-1));
    for(i=0;i<sz;i++){
        if (v[i]>=sz-n)
            ans[v[i]+sz]=a[j],j++;
        else
            ans[v[i]+sz]=inf;
    }
    vector<int>x,y;
    for(i=sz-1;i>0;i--)
        if (ans[i*2]==inf && ans[i*2+1]==inf)
            ans[i]=inf;
        else{
            ans[i]=--aux;
            x.push_back(ans[i*2]);
            y.push_back(ans[i*2+1]);
        }
    for(i=0;i<x.size();i++){
        if (x[i]==inf)
            x[i]=aux;
        if (y[i]==inf)
            y[i]=aux;
    }
    answer(vector<int>(m+1,aux),x,y);
}

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

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