답안 #829840

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
829840 2023-08-18T15:20:40 Z vqpahmad Data Transfer (IOI19_transfer) C++14
88 / 100
240 ms 2500 KB
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define pii pair<int,int>
#define F first
#define S second
#define endl '\n'
#define pb push_back
#define sz(a) (int)a.size()
#define all(a) a.begin(),a.end()
const int mod = 1e9 + 7;
const int N = 1e6 + 15;
const ll inf = 1e18;

#include "transfer.h"

vector<int> get_attachment(vector<int> source) {
	int n = sz(source);
	vector<int> a(9);
	for (int i=1;i<=n;i++){
		for (int b=0;b<8;b++){
			if ((i>>b)&1) a[b] ^= source[i-1];
		}
	}
	for (int i=0;i<8;i++){
		a[8] ^= a[i];
	}
	return a;
}

vector<int> retrieve(vector<int> data) {
	int n = sz(data)-9;
	int ans = 0;
	bool ok = 1;
	int cur = 0;
	for (int i=n;i<n+8;i++){
		cur ^= data[i];
	}
	ok &= data.back()==cur;
	vector<int> c(8);
	for (int i=1;i<=n;i++){
		for (int b=0;b<8;b++){
			if ((i>>b)&1) c[b] ^= data[i-1];
		}
	}
	for (int i=n;i<n+8;i++){
		if (data[i] != c[i-n]) ans |= (1<<(i-n));
	}
	vector<int> fin_ans(n);
	if (ans==0 or !ok){
		for (int i=0;i<n;i++){
			fin_ans[i] = data[i];
		}
	}
	else {
		for (int i=0;i<n;i++){
			if (ans==i+1) fin_ans[i] = 1^data[i];
			else fin_ans[i] = data[i];
		}
	}
	return fin_ans;
}
# 결과 실행 시간 메모리 Grader output
1 Partially correct 6 ms 640 KB Partially correct
2 Partially correct 6 ms 776 KB Partially correct
3 Partially correct 4 ms 640 KB Partially correct
4 Partially correct 5 ms 640 KB Partially correct
5 Partially correct 5 ms 640 KB Partially correct
6 Partially correct 4 ms 764 KB Partially correct
7 Partially correct 4 ms 648 KB Partially correct
8 Partially correct 5 ms 648 KB Partially correct
9 Partially correct 4 ms 640 KB Partially correct
10 Partially correct 4 ms 644 KB Partially correct
11 Partially correct 4 ms 648 KB Partially correct
12 Partially correct 4 ms 640 KB Partially correct
13 Partially correct 5 ms 732 KB Partially correct
14 Partially correct 4 ms 640 KB Partially correct
15 Partially correct 4 ms 648 KB Partially correct
16 Partially correct 4 ms 640 KB Partially correct
17 Partially correct 4 ms 648 KB Partially correct
# 결과 실행 시간 메모리 Grader output
1 Correct 208 ms 2488 KB Output is correct
2 Correct 209 ms 2484 KB Output is correct
3 Correct 207 ms 2488 KB Output is correct
4 Correct 216 ms 2500 KB Output is correct
5 Correct 209 ms 2492 KB Output is correct
6 Correct 208 ms 2492 KB Output is correct
7 Correct 212 ms 2484 KB Output is correct
8 Correct 208 ms 2492 KB Output is correct
9 Correct 211 ms 2484 KB Output is correct
10 Correct 214 ms 2492 KB Output is correct
11 Correct 208 ms 2488 KB Output is correct
12 Correct 208 ms 2484 KB Output is correct
13 Correct 218 ms 2484 KB Output is correct
14 Correct 208 ms 2492 KB Output is correct
15 Correct 208 ms 2488 KB Output is correct
16 Correct 240 ms 2464 KB Output is correct
17 Correct 209 ms 2484 KB Output is correct
18 Correct 207 ms 2484 KB Output is correct
19 Correct 212 ms 2484 KB Output is correct