답안 #713861

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
713861 2023-03-23T06:29:01 Z chenyan Data Transfer (IOI19_transfer) C++17
80 / 100
60 ms 2548 KB
#include<bits/stdc++.h>
using namespace std;
#define pb push_back
/*
vector<int> get_attachment(vector<int>a){
	int i,v=0;
	for(int u:a)v^=u;	
	a.pb(v);
	return a;
}
vector<int>retrieve(vector<int>a){
	int k=a.back(),v=0,u=0,i;
	a.pop_back();
	for(i=0;i<a.size()/2;i++){
		v^=a[i];
		u^=a[i+a.size()/2];
	}
	if(v==u){
		a.resize(a.size()/2);
		return a;
	}
	vector<int>ans;
	for(i=0;i<a.size()/2;i++){
		ans.pb(a[i+(v==k?0:(int)a.size()/2)]);
	}
	return ans;
}
*/
vector<int> get_attachment(vector<int> a){
	int v=0,i,n=a.size(),cnt=0;
	for(i=1;i<=n;i++)if(a[i-1])v^=i,cnt++;
	vector<int>r;
	for(i=(n<=63?6:8);i>=0;i--) r.pb((v>>i)&1);
	r.pb(cnt&1);
	return r;
}
vector<int>retrieve(vector<int> a){
	int i,j,n=a.size(),k,v=0,u=0,cnt=0;
	if(n<=71)n-=8,k=8;
	else n=255,k=10;
	for(i=1;i<=n;i++){
		if(a[i-1])v^=i,cnt++;
	}
	for(i=0;i<k-1;i++){
		u+=(a[i+n]<<(k-2-i));
	}
	if(u==v||(cnt&1)==a[n+k-1]){
		a.resize(n);
		return a;
	}
	a[(u^v)-1]^=1;
	a.resize(n);
	return a;
}
/*
int main(){
	int n;
	cin>>n;
	vector<int>v(n);
	for(int i=0;i<n;i++)cin>>v[i];
	vector<int>u=get_attachment(v);
	for(int k:u)cout<<k<<' ';
	cout<<'\n';
	int k;
	cin>>k;
	u[k]^=1;
	for(int u:retrieve(u))
		cout<<u<<' ';
}
*/

Compilation message

transfer.cpp: In function 'std::vector<int> retrieve(std::vector<int>)':
transfer.cpp:38:8: warning: unused variable 'j' [-Wunused-variable]
   38 |  int i,j,n=a.size(),k,v=0,u=0,cnt=0;
      |        ^
# 결과 실행 시간 메모리 Grader output
1 Partially correct 3 ms 640 KB Partially correct
2 Partially correct 3 ms 640 KB Partially correct
3 Partially correct 3 ms 648 KB Partially correct
4 Partially correct 3 ms 640 KB Partially correct
5 Partially correct 3 ms 640 KB Partially correct
6 Partially correct 3 ms 648 KB Partially correct
7 Partially correct 3 ms 648 KB Partially correct
8 Partially correct 3 ms 648 KB Partially correct
9 Partially correct 3 ms 640 KB Partially correct
10 Partially correct 2 ms 648 KB Partially correct
11 Partially correct 3 ms 648 KB Partially correct
12 Partially correct 3 ms 652 KB Partially correct
13 Partially correct 3 ms 648 KB Partially correct
14 Partially correct 3 ms 640 KB Partially correct
15 Partially correct 3 ms 648 KB Partially correct
16 Partially correct 3 ms 640 KB Partially correct
17 Partially correct 3 ms 648 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Partially correct 42 ms 2484 KB Partially correct
2 Partially correct 46 ms 2484 KB Partially correct
3 Partially correct 49 ms 2488 KB Partially correct
4 Partially correct 47 ms 2492 KB Partially correct
5 Partially correct 55 ms 2484 KB Partially correct
6 Partially correct 60 ms 2484 KB Partially correct
7 Partially correct 56 ms 2484 KB Partially correct
8 Partially correct 52 ms 2404 KB Partially correct
9 Partially correct 41 ms 2488 KB Partially correct
10 Partially correct 40 ms 2488 KB Partially correct
11 Partially correct 39 ms 2492 KB Partially correct
12 Partially correct 47 ms 2488 KB Partially correct
13 Partially correct 49 ms 2548 KB Partially correct
14 Partially correct 41 ms 2484 KB Partially correct
15 Partially correct 48 ms 2484 KB Partially correct
16 Partially correct 59 ms 2484 KB Partially correct
17 Partially correct 55 ms 2544 KB Partially correct
18 Partially correct 60 ms 2484 KB Partially correct
19 Partially correct 56 ms 2488 KB Partially correct