Submission #1310841

#TimeUsernameProblemLanguageResultExecution timeMemory
1310841nikoloz-chData Transfer (IOI19_transfer)C++20
100 / 100
50 ms1728 KiB
#include <bits/stdc++.h>
using namespace std;

vector<int> get_attachment(vector<int> src){
    int n = src.size(), kp = (n <= 63 ? 6 : 8);
    int p = 0, t = 0;
    for(int i = 0; i < n; ++i) if(src[i]) p ^= (i + 1);
    vector<int> a;
    for(int b = 0; b < kp; ++b){
        int bit = (p >> b) & 1;
        a.push_back(bit);
        t += bit;
    }
    a.push_back(t % 2);
    return a;
}

vector<int> retrieve(vector<int> data){
    int n = data.size(), kp = ((n - 7) == 63 ? 6 : 8);
    int o = n - (kp + 1), p = 0;
    for(int i = 0; i < o; ++i) if(data[i]) p ^= (i + 1);
    int k = 0, t = 0;
    for(int b = 0; b < kp; ++b){
        int idx = o + b;
        if(idx < 0 || idx >= n-1) return {};
        if(data[idx]){ k |= (1 << b); ++t; }
    }
    vector<int> ans;
    if(data.back() != (t % 2)){
        for(int i = 0; i < o; ++i) ans.push_back(data[i]);
        return ans;
    }
    int err = p ^ k;
    ans.resize(o);
    for(int i = 0; i < o; ++i){
        if(err != 0 && i == (err - 1)) ans[i] = data[i] ? 0 : 1;
        else ans[i] = data[i];
    }
    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)
      |     ^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...