Submission #1310809

#TimeUsernameProblemLanguageResultExecution timeMemory
1310809putuputuData Transfer (IOI19_transfer)C++20
0 / 100
6 ms3252 KiB
#include "transfer.h" #include<bits/stdc++.h> using namespace std; vector<int> get_attachment(vector<int> source) { int xr=0; int cnt=0; for(int i=0; i<(int)source.size(); i++){ if(source[i]==1){ xr^=(i+1); } } vector<int>bit; while(xr>0){ if(xr%2==1){ bit.push_back(1); xr=(xr-1)/2; }else{ bit.push_back(0); xr/=2; } } reverse(bit.begin(), bit.end()); for(int i=0; i<(int)bit.size(); i++){ if(bit[i]==1){ cnt++; } } vector<int> ans=source; for(int i=0; i<(int)bit.size(); i++){ ans.push_back(bit[i]); } ans.push_back(cnt%2); return ans; } vector<int> retrieve(vector<int> data) { int xr=0; vector<int> ans; if(data.size()<255){ for(int i=0; i<63; i++){ if(data[i]==1){ xr^=(i+1); } } int xr1=xr; vector<int>bit; while(xr>0){ if(xr%2==1){ bit.push_back(1); xr=(xr-1)/2; }else{ bit.push_back(0); xr/=2; } } int b=0; int cnt=0; for(int i=0; i<(int)bit.size(); i++){ if(bit[i]==data[63+i]){ b++; if(data[63+i]==1){ cnt++; } } } if(b==bit.size()){ for(int i=0; i<63; i++){ ans.push_back(data[i]); } }else if(cnt%2==data[data.size()-1]){ int xr2=0; for(int i=0; i<(int)bit.size(); i++){ if(data[63+i]==1){ xr2+=((i+1)<<1LL); } int idx=xr1^xr2; for(int i=0; i<63; i++){ if(i==idx){ if(data[i]==1){ ans.push_back(0); }else{ ans.push_back(1); } }else{ ans.push_back(data[i]); } } } }else{ for(int i=0; i<63; i++){ ans.push_back(data[i]); } } }else{ for(int i=0; i<255; i++){ if(data[i]==1){ xr^=(i+1); } } int xr1=xr; vector<int>bit; while(xr>0){ if(xr%2==1){ bit.push_back(1); xr=(xr-1)/2; }else{ bit.push_back(0); xr/=2; } } int b=0; int cnt=0; for(int i=0; i<(int)bit.size(); i++){ if(bit[i]==data[255+i]){ b++; if(data[255+i]==1){ cnt++; } } } if(b==bit.size()){ for(int i=0; i<255; i++){ ans.push_back(data[i]); } }else if(cnt%2==data[data.size()-1]){ int xr2=0; for(int i=0; i<(int)bit.size(); i++){ if(data[255+i]==1){ xr2+=((i+1)<<1LL); } int idx=xr1^xr2; for(int i=0; i<255; i++){ if(i==idx){ if(data[i]==1){ ans.push_back(0); }else{ ans.push_back(1); } }else{ ans.push_back(data[i]); } } } }else{ for(int i=0; i<255; i++){ ans.push_back(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...