➤ Problem Link : 1154E. Two Teams
✅ C++ Solution :
#include<bits/stdc++.h> using namespace std; #define ll long long int #define pp pair<int,int> #define mp make_pair int main() { int n,k; cin>>n>>k; vector<int> ans(n); set<int> us; vector<pp> arr(n); for(int i=0;i<n;i++) { cin>>arr[i].first; arr[i].second=i; us.insert(i); } sort(arr.begin(),arr.end(),greater<pp>()); int x=0; for(int i=0;i<n;i++) { if(us.find(arr[i].second)!=us.end()) { auto it = us.find(arr[i].second); auto temp=it; if(temp!=us.begin()) { temp--; for(int m=1;m<=k;m++) { auto t = temp; ans[*temp]=x+1; if(temp==us.begin()) { us.erase(t); break; } temp--; us.erase(t); } } temp=it; temp++; for(int m=1;m<=k && temp!=us.end();m++) { auto t = temp; ans[*temp]=x+1; temp++; us.erase(t); } ans[*it]=x+1; us.erase(it); x^=1; } } for(int i : ans) cout<<i; }
Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook.
😇Happy Learning!!