Submission #1006150

#TimeUsernameProblemLanguageResultExecution timeMemory
1006150m5588ohammedData Transfer (IOI19_transfer)C++14
0 / 100
5 ms5396 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int> get_attachment(vector<int> source) {
    int cnt=0,sum=0,k;
    for(int i=0;i<255;i++){
        if(source[i]==1){
            sum++;
            cnt^=i;
        }
    }
    vector <int> ans=source;
    k=sum%2;
    while(cnt!=0){
        ans.push_back(cnt%2);
        cnt/=2;
    }
    ans.push_back(k);
    return ans;
}

vector<int> retrieve(vector<int> data) {
    int cnt=0,sum=0,k=data[data.size()-1],num=0;
    for(int i=0;i<255;i++){
        if(data[i]==1){
            sum++;
            cnt^=i;
        }
    }
    for(int i=255;i<data.size()-1;i++) num+=data[i]*(1<<(i-255));
    if(sum%2!=k) data[cnt^num]^=1;
    return vector<int> (data.begin(), data.begin()+255);

}

Compilation message (stderr)

transfer.cpp: In function 'std::vector<int> retrieve(std::vector<int>)':
transfer.cpp:29:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |     for(int i=255;i<data.size()-1;i++) num+=data[i]*(1<<(i-255));
      |                   ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...