답안 #22491

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
22491 2017-04-30T05:04:52 Z 버거킹 송죽SK점 우수고객(#1039, Namnamseo, khsoo01) Window XOR (KRIII5_WX) C++14
0 / 7
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

WX.cpp: In function 'int main()':
WX.cpp:44:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%lld", &n, &k, &t);
                               ^
WX.cpp:48:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &a[F][i]);
                        ^
# 결과 실행 시간 메모리 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 -