답안 #99964

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
99964 2019-03-09T03:02:28 Z tinjyu 자동 인형 (IOI18_doll) C++14
37 / 100
190 ms 11608 KB
#include <iostream>
#include <vector>
#include "doll.h"
using namespace std;
int l[1000000],r[1000000],num[25],d[1000000];

void create_circuit(int M, std::vector<int> A) {
  int n = A.size(); 
  int t=1,p=0;
	while(t<n)
	{
		t*=2;
		p++;
	}
	if(t==n)
	{
		t*=2;
		p++;
	}
  std::vector<int> C(M + 1);
  C[0] = -1;
  for (int i = 1; i <= M; ++i) {
    C[i] = 1;
  }
  std::vector<int> X(t-1), Y(t-1);
  for (int k = 0; k < n; ++k) {
    X[k] = Y[k] = A[k];
  }
 
	num[1]=-1;
	for(int i=1;i<=t+1;i++)
	{
		num[1]++;
		for(int j=1;j<=p+1;j++)
		{
			if(num[j]==2)
			{
				num[j]=0;
				num[j+1]++;
			}
			else break;
		}
		int q=1;
		for(int j=p;j>=1;j--)
		{
			d[i]+=q*num[j];
			q*=2;
		}
	}
	for(int i=1;i<=t-1;i++)
	{
		l[i]=(i*2)*-1;
		r[i]=(i*2+1)*-1;
		if(i*2>t-1)l[i]=-1;
		if(i*2+1>t-1)r[i]=-1;
	}
	//for(int i=1;i<=t-1;i++)cout<<l[i]<<" ";
	//cout<<endl;
	//for(int i=1;i<=t-1;i++)cout<<r[i]<<" ";
	//cout<<endl;
	for(int i=1;i<=n;i++)
	{
		if(d[i]%2==1)r[(t+d[i])/2]=A[i-1];
		else l[(t+d[i])/2]=A[i-1];
		//cout<<d[i]%2<<" "<<(t+d[i])/2<<endl;
	}
	//for(int i=t/2;i<=t-1;i++)cout<<l[i]<<" "<<r[i]<<" ";
  	//cout<<endl;
	  C[0]=-1;
  	for(int i=1;i<=M;i++)C[i]=-1;
  	if(n==t)C[A[n-1]]=0;
  	else r[t-1]=0;
	//cout<<endl;
	for(int i=0;i<t-1;i++)X[i]=l[i+1];
	//cout<<endl;
	for(int i=0;i<t-1;i++)Y[i]=r[i+1];
	
	//for(int i=0;i<t-1;i++)cout<<X[i]<<" ";
	//cout<<endl;
	//for(int i=0;i<t-1;i++)cout<<Y[i]<<" ";
	//cout<<endl;
  	answer(C, X, Y);
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 204 KB Output is partially correct
2 Partially correct 76 ms 10552 KB Output is partially correct
3 Partially correct 77 ms 10496 KB Output is partially correct
4 Partially correct 89 ms 11072 KB Output is partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 1 ms 204 KB Output is partially correct
2 Partially correct 76 ms 10552 KB Output is partially correct
3 Partially correct 77 ms 10496 KB Output is partially correct
4 Partially correct 89 ms 11072 KB Output is partially correct
5 Partially correct 108 ms 11608 KB Output is partially correct
6 Partially correct 107 ms 11328 KB Output is partially correct
7 Partially correct 124 ms 11460 KB Output is partially correct
8 Partially correct 91 ms 11200 KB Output is partially correct
9 Partially correct 190 ms 10548 KB Output is partially correct
10 Partially correct 93 ms 11204 KB Output is partially correct
11 Partially correct 97 ms 11076 KB Output is partially correct
12 Partially correct 81 ms 10512 KB Output is partially correct
13 Partially correct 82 ms 10688 KB Output is partially correct
14 Partially correct 84 ms 10780 KB Output is partially correct
15 Partially correct 130 ms 10820 KB Output is partially correct
16 Partially correct 3 ms 588 KB Output is partially correct
17 Correct 53 ms 5892 KB Output is correct
18 Partially correct 79 ms 10548 KB Output is partially correct
19 Partially correct 88 ms 10564 KB Output is partially correct
20 Partially correct 89 ms 11076 KB Output is partially correct
21 Partially correct 94 ms 11072 KB Output is partially correct
22 Partially correct 89 ms 11064 KB Output is partially correct