Submission #1308697

#TimeUsernameProblemLanguageResultExecution timeMemory
1308697CyanberryData Transfer (IOI19_transfer)C++20
0 / 100
4 ms1720 KiB
#include "transfer.h"
#include "bits/stdc++.h"
using namespace std;

vector<int> get_attachment(vector<int> source) {
	int siz = source.size();
	for (int i = 10; i >= 0; --i) {
		if (siz & (1<<i)) {
			siz = i + 2;
			break;
		}
	}
	vector<int> addon(siz, 0);
	--siz;
	for (int i = 0; i < source.size(); ++i) {
		if (source[i]) {
			for (int j = 0; j < siz - 1; ++j) {
				if ((i+1) & (1<<j)) {
					++addon[j];
				}
			}
			++addon[siz];
		}
	}
	for (int j = 0; j < siz; ++j) {
		addon[j] %= 2;
		// cout<<addon[j]<<' ';
	}
	// cout<<"               \n                                                ";
	return addon;
}

vector<int> retrieve(vector<int> data) {
	int addon;
	for (addon = 12; addon >= 0; --addon) {
		if (data.size() - addon & (1<<addon)) break;
	}
	vector<int> supposed(addon, 0), actual;
	for (int i = data.size() - addon; i < data.size(); ++i) {
		actual.push_back(data[i]);
	}
	for (int i = 0; i < addon; ++i) {
		data.pop_back();
	}
	int siz = data.size() - addon;
	--addon;
	for (int i = 0; i < siz; ++i) {
		for (int j = 0; j < addon - 1; ++j) {
			if (i & (1<<j)) {
				++supposed[j];
			}
		}
		++supposed[addon];
	}
	if (supposed[addon] == actual[addon]) return data;
	int target = 0;
	for (int i = 0; i < addon; ++i) {
		if (supposed[i] != actual[i]) {
			target += (1<<i);
		}
	}
	--target;
	if (target >= 0) data[target] = 1 - data[target];
	return data;
}

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)
      |     ^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...