Submission #307949

#TimeUsernameProblemLanguageResultExecution timeMemory
307949urd05Data Transfer (IOI19_transfer)C++14
80 / 100
205 ms2796 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<7;i++) { ret.push_back(val%2); val/=2; } } else { for(int i=0;i<9;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()==71) { int x=0; int xval=0; for(int i=63;i<71;i++) { x^=data[i]; if (i!=70) 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; val%=128; } } for(int i=0;i<63;i++) { if (data[i]==0) { if ((val+i+1)%128==xval) { pos=i; break; } } else { if ((xval+i+1)%128==val) { 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<265;i++) { x^=data[i]; if (i!=264) 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; val%=512; } } for(int i=0;i<255;i++) { if (data[i]==0) { if ((val+i+1)%512==xval) { pos=i; break; } } else { if ((xval+i+1)%512==val) { 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...