# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
472573 | ZaZo_ | Political Development (BOI17_politicaldevelopment) | C++14 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define ZAZO ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define int long long
using namespace std;
vector<int>edges[50001];
int vis[50001]={0};
int ed[50001][50001];
int mx=1,n,k;
int32_t main() {
ZAZO
cin >> n >> k ;
memset(ed,0,sizeof ed);
for(int i = 0 ; i < n ; i ++)
{
int d;
cin>>d;
for(int j = 0 ; j < d ; j ++)
{
mx=2;
int x; cin>>x;
edges[i].push_back(x);
edges[x].push_back(i);
ed[i][x]=1;
ed[x][i]=1;
}
}
for(int i = 0 ; i < n ; i ++)
{
for(int j = 0 ; j < edges[i].size() ; j ++)
{
for(int p = j+1 ; p < edges[i].size(); p++)
{
int flg=0;
int p1 = edges[i][j] , p2 = edges[i][p];
if(ed[p1][p2])
{
mx=max(mx,3ll);
flg=1;
}
if(!flg||mx>=k) continue;
for(int k = j+2 ; k < edges[i].size(); k++)
{
int flg1=0,p3 = edges[i][k] , p4 = edges[i][p];
if(ed[p3][p4]&&ed[p3][p1])
{
mx=max(mx,4ll);
flg1=1;
}
if(!flg1||mx>=k) continue;
for(int kk = j+3 ; kk<edges[i].size() ; kk++)
{
int flg2=0,p5 = edges[i][kk] , p6 = edges[i][k];
if(ed[p5][p6]&&ed[p5][p4]&&ed[p5][p1])
{
mx=max(mx,5ll);
cout<<"5"<<endl;
return 0;
}
}
}
}
}
}
cout<<mx<<endl;
}