➤ Problem Link : 1327B. Princesses and Princes
✅ C++ Solution :
#include<bits/stdc++.h>
using namespace std;
#define ll long long int
int main()
{
int t;
cin>>t;
while(t--)
{
int n,k,val;
cin>>n;
unordered_set<int> us;
vector<int> dgt[n+1];
int cnt=0;
int nd=-1;
for(int i=1;i<=n;i++)
{
cin>>k;
bool flag=1;
for(int j=1;j<=k;j++)
{
cin>>val;
dgt[i].push_back(val);
}
for(int j=0;j<dgt[i].size();j++)
{
if(us.find(dgt[i][j])==us.end())
{
flag=0;
cnt++;
us.insert(dgt[i][j]);
break;
}
}
if(flag)
nd=i;
}
if(cnt==n)
cout<<"OPTIMAL\n";
else
{
cout<<"IMPROVE\n";
for(int i=1;i<=n;i++)
{
if(us.find(i)==us.end())
{
cout<<nd<<" "<<i<<endl;
break;
}
}
}
}
}
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!!
