제출 #1105841

#제출 시각아이디문제언어결과실행 시간메모리
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...