Submission #1105841

#TimeUsernameProblemLanguageResultExecution timeMemory
1105841abushbandit_Football (info1cup20_football)C++17
0 / 100
2070 ms1048576 KiB
#include "bits/stdc++.h"

#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")

using namespace std;

//~ #ifndef ONLINE_JUDGE
//~ #include "debug.h"
//~ #else
//~ #define debug(...)
//~ #define debugArr(...)
//~ #endif

#define int long long
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define ff first
#define ss second
#define pb push_back

template<class T, class U> inline bool chmin(T& a, const U& b) { if (a > b) { a = b; return true; } return false; }
template<class T, class U> inline bool chmax(T& a, const U& b) { if (a < b) { a = b; return true; } return false; }



const int inf = 2e18;
const int mod = 1e9 + 7;
const int N = 2e5 + 1;

void solve(){
	
	int n,k;
	cin >> n >> k;
	vector<int> a(n + 1);
	int mx = 0;
	for(int i = 1;i <= n;i++) cin >> a[i],mx = max(mx,a[i]);
	vector<vector<int>> dp(mx + 1,vector<int> (min(mx + 1,k + 1)));
	sort(all(a));
	set<int> MEX;
	for(int i = 0;i <= min(mx,k) + 1;i++) {
		MEX.insert(i);
	}
	int X = 0;
	for(int i = 1;i <= mx;i++) {
		set<int> v = MEX;
		int mex = 0;
		for(int j = 1;j <= min(i,k);j++) {
			if(v.find(dp[i - j][j]) != v.end())
				v.erase(dp[i - j][j]);
			dp[i][j] = *v.begin();
		}
		mex = *(v.begin());
		X = X ^ mex;
	}
	if(X) cout << 1;
	else  cout << 0;
	
}


signed main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);cout.tie(nullptr);
	int T = 1;
	cin >> T;
	while(T--) {
		solve();
	}
	
}
	
#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...