Submission #308005

#TimeUsernameProblemLanguageResultExecution timeMemory
308005urd05Data Transfer (IOI19_transfer)C++14
100 / 100
191 ms2880 KiB
#include "transfer.h" #include <bits/stdc++.h> using namespace std; vector<int> get_attachment(vector<int> source) { int n=source.size(); int val=0; for(int i=0;i<n;i++) { if (source[i]==1) { val^=i+1; val%=2*(n+1); } } vector<int> ret; if (n==63) { for(int i=0;i<6;i++) { ret.push_back(val%2); val/=2; } } else { for(int i=0;i<8;i++) { ret.push_back(val%2); val/=2; } } int x=0; for(int i=0;i<ret.size();i++) { x^=ret[i]; } ret.push_back(x); return ret; } vector<int> retrieve(vector<int> data) { vector<int> ret; if (data.size()==70) { int x=0; int xval=0; for(int i=63;i<70;i++) { x^=data[i]; if (i!=69) xval+=(data[i]<<(i-63)); } if (x==1) { for(int i=0;i<63;i++) { ret.push_back(data[i]); } return ret; } int pos=-1; int val=0; for(int i=0;i<63;i++) { if (data[i]==1) { val^=i+1; } } for(int i=0;i<63;i++) { if ((val^(i+1))==xval) { pos=i; break; } } for(int i=0;i<63;i++) { ret.push_back(data[i]^(pos==i)); } } else { int x=0; int xval=0; for(int i=255;i<264;i++) { x^=data[i]; if (i!=263) xval+=(data[i]<<(i-255)); } if (x==1) { for(int i=0;i<255;i++) { ret.push_back(data[i]); } return ret; } int pos=-1; int val=0; for(int i=0;i<255;i++) { if (data[i]==1) { val^=i+1; } } for(int i=0;i<255;i++) { if ((val^(i+1))==xval) { pos=i; break; } } for(int i=0;i<255;i++) { ret.push_back(data[i]^(pos==i)); } } return ret; }

Compilation message (stderr)

transfer.cpp: In function 'std::vector<int> get_attachment(std::vector<int>)':
transfer.cpp:28:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |  for(int i=0;i<ret.size();i++) {
      |              ~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...