Submission #546405

#TimeUsernameProblemLanguageResultExecution timeMemory
546405jamezzz자동 인형 (IOI18_doll)C++17
0 / 100
6 ms11988 KiB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> out[500005];

void create_circuit(int M,vector<int> A){
	int N=A.size();
	
	if(N==1){
		vector<int> C(M+1,0);
		C[0]=A[0];
		answer(C,{},{});
		return;
	}
	
	for(int i=0;i<N;++i){
		out[M+1].push_back(A[i]);
	}
	out[M+1].push_back(0);
	
	vector<int> C(M+1);
	vector<int> X,Y;
	
	int cur=2;
	for(int i=0;i<M+cur;++i){
		if(i<=M)C[i]=-1;
		else{
			vector<int> l,r;
			int s=out[i].size();
			int num=0;
			for(int j=0;j<out[i].size();j+=2){
				if(i==M+1&&((num+s)&(num+s-1))!=0){
					l.push_back(-1);
					r.push_back(out[i][j]);
					--j;++num;
				}
				else{
					l.push_back(out[i][j]);
					r.push_back(out[i][j+1]);
				}
			}
			
			printf("%d %d %d\n",s,l.size(),r.size());
			
			bool same=true;
			for(int j=0;j<l.size()-1;++j){
				if(l[j]!=l[j+1]){
					same=false;
					break;
				}
			}
			
			if(same)X.push_back(l[0]);
			else{
				X.push_back(-cur);
				swap(out[M+cur],l);
				++cur;
			}
			
			same=true;
			for(int j=0;j<r.size()-1;++j){
				if(r[j]!=r[j+1]){
					same=false;
					break;
				}
			}
			
			if(same)Y.push_back(r[0]);
			else{
				Y.push_back(-cur);
				swap(out[M+cur],r);
				++cur;
			}
		}
	}
	
	answer(C,X,Y);
}

Compilation message (stderr)

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:32:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |    for(int j=0;j<out[i].size();j+=2){
      |                ~^~~~~~~~~~~~~~
doll.cpp:44:16: warning: format '%d' expects argument of type 'int', but argument 3 has type 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wformat=]
   44 |    printf("%d %d %d\n",s,l.size(),r.size());
      |               ~^         ~~~~~~~~
      |                |               |
      |                int             std::vector<int>::size_type {aka long unsigned int}
      |               %ld
doll.cpp:44:19: warning: format '%d' expects argument of type 'int', but argument 4 has type 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wformat=]
   44 |    printf("%d %d %d\n",s,l.size(),r.size());
      |                  ~^               ~~~~~~~~
      |                   |                     |
      |                   int                   std::vector<int>::size_type {aka long unsigned int}
      |                  %ld
doll.cpp:47:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |    for(int j=0;j<l.size()-1;++j){
      |                ~^~~~~~~~~~~
doll.cpp:62:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |    for(int j=0;j<r.size()-1;++j){
      |                ~^~~~~~~~~~~
#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...