Submission #278706

#TimeUsernameProblemLanguageResultExecution timeMemory
278706doowey자동 인형 (IOI18_doll)C++14
37 / 100
183 ms12720 KiB
#include <bits/stdc++.h>
#include "doll.h"

using namespace std;

typedef long long ll;
typedef pair<int,int> pii;

#define fi first
#define se second
#define mp make_pair

int id = 0;
vector<int> X, Y;
int getid(vector<int> A){
    id -- ;
    int cur = id;
    if(A.size() == 1){
        X.push_back(A[0]);
        Y.push_back(cur);
        return cur;
    }
    else if(A.size() == 2){
        X.push_back(A[0]);
        Y.push_back(A[1]);
        return cur;
    }
    else{
        vector<int> P, Q;
        for(int i = 0 ; i < A.size(); i ++ ){
            if(i % 2 == 0) P.push_back(A[i]);
            else Q.push_back(A[i]);
        }
        int now = X.size();
        X.push_back(0);
        Y.push_back(0);
        int lef = getid(P);
        int rig = getid(Q);
        X[now] = lef;
        Y[now] = rig;
        return cur;
    }
}

void create_circuit(int M, vector<int> A) {
    vector<int> C;
    int lg = 0;
    while((1 << lg) - 1 < A.size())
        lg ++ ;
    while(A.size() < (1 << lg) - 1){
        A.push_back(-1);
    }
    A.push_back(0);
    C.push_back(getid(A));
    for(int i = 1; i <= M; i ++ )
        C.push_back(-1);
    answer(C,X,Y);
}

Compilation message (stderr)

doll.cpp: In function 'int getid(std::vector<int>)':
doll.cpp:30:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |         for(int i = 0 ; i < A.size(); i ++ ){
      |                         ~~^~~~~~~~~~
doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:48:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |     while((1 << lg) - 1 < A.size())
      |           ~~~~~~~~~~~~~~^~~~~~~~~~
doll.cpp:50:20: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   50 |     while(A.size() < (1 << lg) - 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...