Submission #1364011

#TimeUsernameProblemLanguageResultExecution timeMemory
1364011nerrrminData Transfer (IOI19_transfer)C++20
0 / 100
2 ms836 KiB
#include "transfer.h"
#include<bits/stdc++.h>
#define pb push_back
using namespace std;

int get_xor(int bit, vector < int > v)
{
	int res = 0;
	for (int i = 0; i < v.size(); ++ i)
	{
		int has = ((1 << bit) & i);
		if(!has)res = (res ^ v[i]);
	} 
	
	return res;
}

std::vector<int> get_attachment(std::vector<int> source) {
	int n, k;
	vector < int > v = source;
	std::vector<int> res;
	n = (int)source.size();
	//assert(n == 63);
	if(n == 63)k = 6;
	else k = 8;
	
	for (int i = 0; i < v.size(); ++ i)
		cout << v[i];
	cout << endl;
	for (int bit = 0; bit < k; ++ bit)
	{
		int x = get_xor(bit, v);
		res.pb(x);
	}
	int total = 0;
	for (int i = 0; i < (int)res.size(); ++ i)
		total = (total ^ res[i]);
	res.pb(total);
	
	return res;
}

std::vector<int> retrieve(std::vector<int> data)
{
	int n, k;
	vector < int > ans;
	int sz = data.size();
	if(sz == 255 + 9)n = 255;
	else n = 63;
	//assert(sz == 63 + 7);
	int total = 0;
	for (int i = 0; i < sz-1; ++ i)
	{
		if(i < n)ans.pb(data[i]);
		if(i >= n)total = (total ^ data[i]);
	}
	if(n == 255)k = 8;
	else k = 6;
	//
	
	int problem = 0, j = n;
	for (int bit = 0; bit < k; ++ bit)
	{
		int last = data[j];
		int curr = get_xor(bit, ans);
		if(last == curr)
		{
			problem += (1 << bit);
		}
		j ++;
	}
	//cout << "PROBLEM IS " << problem << endl;
	if(problem < 0 || problem >= n)return ans;
	if(data.back() != total)return ans;
	ans[problem] = 1 - ans[problem];
	for (int i = 0; i < ans.size(); ++ i)
		cout << ans[i];
	cout << endl;
	return ans;
}

Compilation message (stderr)

grader.cpp: In instantiation of 'void shuffle(std::vector<T>&) [with T = Scenario]':
grader.cpp:200:10:   required from here
grader.cpp:28:23: warning: 'void std::random_shuffle(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<Scenario*, vector<Scenario> >]' is deprecated: use 'std::shuffle' instead [-Wdeprecated-declarations]
   28 |         random_shuffle(v.begin(), v.end());
      |         ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/algorithm:61,
                 from grader.cpp:8:
/usr/include/c++/13/bits/stl_algo.h:4581:5: note: declared here
 4581 |     random_shuffle(_RandomAccessIterator __first, _RandomAccessIterator __last)
      |     ^~~~~~~~~~~~~~
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...