답안 #288185

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
288185 2020-09-01T09:39:19 Z Pyqe Data Transfer (IOI19_transfer) C++14
100 / 100
538 ms 2692 KB
#include "transfer.h"
#include <bits/stdc++.h>

using namespace std;

long long n,pn;
bitset<269> a;

void slv()
{
	long long i,j,k,c;
	
	for(i=1;i<=n;i++)
	{
		c=0;
		for(j=0,k=i;k;k/=2,j++)
		{
			if(k&1)
			{
				a[n+1+j]=a[n+1+j]^a[i];
				c++;
			}
		}
		if(c==1)
		{
			a[n+pn+1]=a[n+pn+1]^a[i];
		}
	}
}

vector<int> get_attachment(vector<int> aa)
{
	long long i;
	vector<int> sq;
	
	n=aa.size();
	for(i=1;i<=n;i++)
	{
		a[i]=aa[i-1];
	}
	pn=6+2*(n==255);
	for(i=n+1;i<=n+pn+1;i++)
	{
		a[i]=0;
	}
	slv();
	for(i=n+1;i<=n+pn+1;i++)
	{
		sq.push_back(a[i]);
	}
	return sq;
}

vector<int> retrieve(vector<int> aa)
{
	long long i,p=0,c=0;
	vector<int> sq;
	
	n=aa.size();
	for(i=1;i<=n;i++)
	{
		a[i]=aa[i-1];
	}
	pn=6+2*(n==264);
	n-=pn+1;
	slv();
	for(i=0;i<pn;i++)
	{
		p|=a[n+1+i]<<i;
		c+=a[n+1+i];
	}
	if(c>1||(c==1&&a[n+pn+1]))
	{
		a[p]=!a[p];
	}
	for(i=1;i<=n;i++)
	{
		sq.push_back(a[i]);
	}
	return sq;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 11 ms 1148 KB Output is correct
2 Correct 11 ms 1144 KB Output is correct
3 Correct 9 ms 912 KB Output is correct
4 Correct 9 ms 912 KB Output is correct
5 Correct 11 ms 1040 KB Output is correct
6 Correct 11 ms 1152 KB Output is correct
7 Correct 9 ms 1312 KB Output is correct
8 Correct 12 ms 1144 KB Output is correct
9 Correct 11 ms 912 KB Output is correct
10 Correct 11 ms 912 KB Output is correct
11 Correct 12 ms 912 KB Output is correct
12 Correct 11 ms 1144 KB Output is correct
13 Correct 11 ms 1140 KB Output is correct
14 Correct 11 ms 1040 KB Output is correct
15 Correct 11 ms 1276 KB Output is correct
16 Correct 11 ms 912 KB Output is correct
17 Correct 11 ms 1144 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 529 ms 2664 KB Output is correct
2 Correct 532 ms 2676 KB Output is correct
3 Correct 534 ms 2676 KB Output is correct
4 Correct 534 ms 2672 KB Output is correct
5 Correct 527 ms 2692 KB Output is correct
6 Correct 532 ms 2668 KB Output is correct
7 Correct 530 ms 2500 KB Output is correct
8 Correct 535 ms 2680 KB Output is correct
9 Correct 532 ms 2636 KB Output is correct
10 Correct 525 ms 2628 KB Output is correct
11 Correct 528 ms 2668 KB Output is correct
12 Correct 529 ms 2628 KB Output is correct
13 Correct 526 ms 2668 KB Output is correct
14 Correct 538 ms 2660 KB Output is correct
15 Correct 529 ms 2640 KB Output is correct
16 Correct 527 ms 2672 KB Output is correct
17 Correct 535 ms 2668 KB Output is correct
18 Correct 529 ms 2672 KB Output is correct
19 Correct 526 ms 2668 KB Output is correct