#include<bits/stdc++.h>
#define ll long long
#define speed_up ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
/*
用一个数组标记王子,0表示单身,1表示已经配对
*/
int main()
{
speed_up;
int t;
int m[100005]={0};//数组初始化为0
cin>>t;
while(t--)
{
int n,v,f2=0;//f2判断是否有未配对的公主
cin>>n;
for(int i=0; i<n; i++)
{
int nn,a,f=0;
cin>>nn;
for(int j=0; j<nn; j++)
{
cin>>a;
if(f==0&&m[a]==0)
{
m[a]=1;
f=1;//f用来标记公主是否能找到合适的王子
}
}
if(f==0)
{
f2=1;
v=i+1;//v值记录第几个公主没有能匹配的王子
}
}
if(f2==0)
{
cout<<"OPTIMAL"<<endl;
}
else
{
cout<<"IMPROVE"<<endl;
cout<<v<<" ";
for(int i=1; i<=n; i++)
{
if(m[i]==0)//输出第一个单身的王子下标
{
cout<<i<<endl;
break;
}
}
}
for(int i=1;i<=n;i++)
{
m[i]=0;//还原数组为0
}
}
}
原文链接: https://www.cnblogs.com/SyrupWRLD999/p/13125410.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/355054
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!