Join Telegram for post contest discussions: Click Here to join
Problem A: Polycarp and Coins
#include <iostream>
#include <bits/stdc++.h>
#define ll long long
#define lld long double
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define fl(i,m,n) for(int i=m;i<n;i++)
#define rl(i,m,n) for(int i=n;i>=m;i--)
#define py cout<<"YES\n";
#define pn cout<<"NO\n";
#define vr(v) v.begin(),v.end()
#define rv(v) v.end(),v.begin()
#define fast ios_base::sync_with_stdio(false);
#define input cin.tie(NULL);
#define output cout.tie(NULL);
using namespace std;
ll gcd(ll a, ll b){if (b == 0)return a;return gcd(b, a % b);}
ll lcm(ll a, ll b){return (a/gcd(a,b)*b);}
bool sorta(const pair<int,int> &a,const pair<int,int> &b){return (a.second < b.second);}
bool sortd(const pair<int,int> &a,const pair<int,int> &b){return (a.second > b.second);}
void printarr(ll arr[],ll n){fl(i,0,n)cout<<arr[i]<<" ";cout<<"\n";}
//Code by Abhinav Awasthi
//Language C++
//Practice->Success
void asquare()
{
ll n,a,b;
cin>>n;
if(n%3==1)
{
a=n/3;
a++;
b=n/3;
}
else if(n%3==2)
{
a=n/3;
b=n/3;
b++;
}
else
{
a=n/3;
b=n/3;
}
cout<<a<<" "<<b<<"\n";
}
int main()
{
fast input output
ll t;
cin>>t;
while(t--)
{
asquare();
}
return 0;
}
Problem B1: Wonderful Coloring
#include <iostream>
#include <bits/stdc++.h>
#define ll long long
#define lld long double
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define fl(i,m,n) for(int i=m;i<n;i++)
#define rl(i,m,n) for(int i=n;i>=m;i--)
#define py cout<<"YES\n";
#define pn cout<<"NO\n";
#define vr(v) v.begin(),v.end()
#define rv(v) v.end(),v.begin()
#define fast ios_base::sync_with_stdio(false);
#define input cin.tie(NULL);
#define output cout.tie(NULL);
using namespace std;
ll gcd(ll a, ll b){if (b == 0)return a;return gcd(b, a % b);}
ll lcm(ll a, ll b){return (a/gcd(a,b)*b);}
bool sorta(const pair<int,int> &a,const pair<int,int> &b){return (a.second < b.second);}
bool sortd(const pair<int,int> &a,const pair<int,int> &b){return (a.second > b.second);}
void printarr(ll arr[],ll n){fl(i,0,n)cout<<arr[i]<<" ";cout<<"\n";}
//Code by Abhinav Awasthi
//Language C++
//Practice->Success
void asquare()
{
string s;
cin>>s;
ll n=0,m=0;
unordered_map<char,int>ump;
for(int i=0;i<s.length();i++)
{
ump[s[i]]++;
}
for(auto &a:ump)
{
if(a.second>1)
m++;
else if(a.second==1)
n++;
}
cout<<m+n/2<<"\n";
}
int main()
{
fast input output
ll t;
cin>>t;
while(t--)
{
asquare();
}
return 0;
}
Problem B2: Wonderful Coloring-2
#include <iostream>
#include <bits/stdc++.h>
#define ll long long
#define lld long double
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define fl(i,m,n) for(int i=m;i<n;i++)
#define rl(i,m,n) for(int i=n;i>=m;i--)
#define py cout<<"YES\n";
#define pn cout<<"NO\n";
#define vr(v) v.begin(),v.end()
#define rv(v) v.end(),v.begin()
#define fast ios_base::sync_with_stdio(false);
#define input cin.tie(NULL);
#define output cout.tie(NULL);
using namespace std;
ll gcd(ll a, ll b){if (b == 0)return a;return gcd(b, a % b);}
ll lcm(ll a, ll b){return (a/gcd(a,b)*b);}
bool sorta(const pair<int,int> &a,const pair<int,int> &b){return (a.second < b.second);}
bool sortd(const pair<int,int> &a,const pair<int,int> &b){return (a.second > b.second);}
void printarr(ll arr[],ll n){fl(i,0,n)cout<<arr[i]<<" ";cout<<"\n";}
//Code by Abhinav Awasthi
//Language C++
//Practice->Success
void asquare()
{
ll n,k,nn=0,mm=0,tt,x;
cin>>n>>k;
ll arr[n];
ll ans[n];
fl(i,0,n)
cin>>arr[i];
unordered_map<ll,vector<ll>>ump;
unordered_map<ll,ll>mmm;
unordered_map<ll,vector<ll>>uv;
vector<ll>v;
for(int i=0;i<n;i++)
{
ump[arr[i]].pb(i);
}
ll index=1,store;
for(auto &a:ump)
{
if(a.second.size()>=k)
{
mm++;
fl(i,0,k)
{
ans[a.second[i]]=index;
index++;
if(index==k+1)
index=1;
}
fl(i,0,a.second.size()-k)
ans[a.second[i+k]]=0;
}
else
{
store=index;
fl(i,0,a.second.size())
{
ans[a.second[i]]=index;
index++;
if(index==k+1)
index=1;
}
nn+=a.second.size();
}
} //3->{0,9}
tt=mm+nn/k; //1->{1,3}
for(int i=0;i<n;i++) //4->{2}
{ //5->{4,8,10}
mmm[ans[i]]++; //9->{5,12}
if(mmm[ans[i]]<=tt) //2->{6}
cout<<ans[i]<<" "; //6->{7}
else //8->{11} k=3
cout<<"0 ";
}
cout<<"\n";
}
int main()
{
fast input output
ll t;
cin>>t;
while(t--)
{
asquare();
}
return 0;
}
Subscribe Youtube Channel for Video Solution: Click here to subscribe.