| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1363776 | simona1230 | Data Transfer (IOI19_transfer) | C++20 | 5 ms | 3256 KiB |
#include "transfer.h"
#include <bits/stdc++.h>
using namespace std;
int pw,n;
std::vector<int> get_attachment(std::vector<int> source)
{
n=source.size();
if(n==63)pw=6;
else pw=8;
vector<int> r=source;
int all=0;
for(int i=0;i<n;i++)
all^=source[i];
r.push_back(all);
for(int b=0;b<=pw;b++)
{
int x=0;
for(int i=0;i<n;i++)
{
if((i+1)&(1<<b))
{
x=x^source[i];
}
}
r.push_back(x);
}
return r;
}
std::vector<int> retrieve(std::vector<int> data)
{
vector<int> ans;
n=data.size();
if(n==70)n=63,pw=6;
else n=255,pw=8;
vector<int> h;
int all=0;
for(int i=0;i<n;i++)
all^=data[i];
h.push_back(all);
for(int b=0;b<=pw;b++)
{
int x=0;
for(int i=0;i<n;i++)
{
if((i+1)&(1<<b))
{
x=x^data[i];
}
}
h.push_back(x);
}
vector<int> v;
int diff=0;
for(int i=0;i<h.size()-1;i++)
{
if(h[i]!=data[i+n])
{
diff+=(1<<i);
v.push_back(i);
}
}
if(v.size()>1||v.size()==1&&h[h.size()-1]!=data[data.size()-1])
{
data[diff-1]^=1;
}
for(int i=0;i<n;i++)
ans.push_back(data[i]);
return ans;
}
컴파일 시 표준 에러 (stderr) 메시지
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
| # | 결과 | 실행 시간 | 메모리 | 채점기 출력 |
|---|---|---|---|---|
| 결과를 불러오는 중입니다… | ||||
