Submission #769146

#TimeUsernameProblemLanguageResultExecution timeMemory
769146NintsiChkhaidzeFootball (info1cup20_football)C++17
76 / 100
35 ms1368 KiB
#include <bits/stdc++.h>
#define pb push_back
#define ll long long
#define s second
#define f first
#define left (node<<1),l,((l+r)>>1)
#define right ((node<<1)|1),((l+r)>>1) + 1,r
 #define int ll 
using namespace std;

const int N = 1e5 + 5;

int a[N];

signed main() {
	ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL);
	
	int T;
	cin>>T;
	while (T--){
		int n; ll k;
		cin>>n>>k;
		ll sum=0;
		for (int i = 1; i <= n; i++){
			cin>>a[i];
			sum += a[i];
		}
		if (sum&1){
			cout<<'1';
			continue;
		}
		
		if (k == 1){
			cout<<'0';
			continue;
		}
		
		if (k == 2){
			ll cnt=0;
			for (int i = 1; i <= n; i++)
				cnt += a[i]/2;
			if (cnt & 1){
				cout<<'1';
			}else{
				cout<<'0';
			}
			continue;
		}
		
		if (n == 1){
			ll P=2;
			for (int i = 0; i <= 30; i++){
				ll p = (1LL<<i);
				if (p <= k && (a[1] % p) == 0) {
					P=p;	
				}else{
					break;
				}
			}
			
			ll cnt = a[1]/P;
			if (cnt & 1) cout<<'1';
			else cout<<'0';
		}
		
		int p = 0;
		for (ll i = 2; i <= k; i *= 2){
			ll cnt=0;
			for (int j = 1; j<= n; j++){
				cnt += a[j]/i;
			}
			if (cnt & 1){
				p = 1;
				break;
			}
		}
		if (p) cout<<'1';
		else cout<<'0';
	}
	
}

/*
2
1 2
8
1 4
12
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...