# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
22491 | 2017-04-30T05:04:52 Z | 버거킹 송죽SK점 우수고객(#1039, Namnamseo, khsoo01) | Window XOR (KRIII5_WX) | C++14 | 1000 ms | 10612 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pp; typedef pair<ll,ll> pll; #define all(x) (x).begin(),(x).end() #define pb push_back #define x first #define y second int n, k; ll t; int a[2][100010]; int sp[20][100010]; void trans(int h, int F, int T){ ll w = (1ll << h) % n; for(int i=0; i<n; ++i){ sp[0][i] = a[F][i]; } for(int i=1; i<=16; ++i){ for(int j=0; j<n; ++j){ sp[i][j]=sp[i-1][j] ^ sp[i-1][(j+w*(1<<(i-1)))%n]; } } for(int i=0; i<n; ++i){ a[T][i] = 0; ll p=i; for(int j=16; 0<=j; --j){ if(1&(k>>j)){ a[T][i] ^= sp[j][p]; p += w*(1<<j)%n; p %= n; } } } } int main() { //freopen("out.txt", "w", stdout); //n=1e5; k=n/2; t=12345678987654; scanf("%d%d%lld", &n, &k, &t); int F=0, T=1; for(int i=0; i<n; ++i){ //a[F][i]=rand()%int(1e9); scanf("%d", &a[F][i]); } for(int i=62; 0<=i; --i){ if(1 & (t>>i)){ trans(i, F, T); swap(F, T); } } for(int i=0; i<n; ++i){ printf("%d ", a[F][i]); } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 10612 KB | Output is correct |
2 | Correct | 0 ms | 10612 KB | Output is correct |
3 | Correct | 0 ms | 10612 KB | Output is correct |
4 | Execution timed out | 1000 ms | 10612 KB | Execution timed out |
5 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Execution timed out | 1000 ms | 10612 KB | Execution timed out |
2 | Halted | 0 ms | 0 KB | - |