제출 #1276169

#제출 시각아이디문제언어결과실행 시간메모리
1276169LudisseyPolitical Development (BOI17_politicaldevelopment)C++20
0 / 100
5 ms4424 KiB
#include <bits/stdc++.h>
#define sz(a) (int)a.size()
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define int long long
using namespace std;



signed main() {
    ios_base::sync_with_stdio(false); cin.tie(nullptr);
    int n,k; cin >> n >> k;
    vector<vector<int>> pre_neigh(n);
    vector<vector<int>> neigh(n);
    vector<vector<bool>> is_connect(n,vector<bool>(n,false));
    vector<int> a(n);
    vector<int> pa(n);
    vector<int> d(n);
    for (int i = 0; i < n; i++)
    {
        cin >> d[i];
        pre_neigh[i].resize(d[i]);
        for (int j = 0; j < d[i]; j++) cin >> pre_neigh[i][j];
        a[i]=i;
    }
    sort(all(a), [&](int _a, int b) {return sz(pre_neigh[_a]) < sz(pre_neigh[b]); });
    for (int i = 0; i < n; i++) pa[a[i]]=i;
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < sz(pre_neigh[a[i]]); j++)
        {
            if(i<pa[pre_neigh[a[i]][j]]) {
                neigh[i].push_back(pa[pre_neigh[a[i]][j]]);
                is_connect[pa[pre_neigh[a[i]][j]]][i]=true,
                is_connect[i][pa[pre_neigh[a[i]][j]]]=true;
            }
        }
        sort(all(neigh[i]));
    }
    int mx=0;
    for (int i = 0; i < n; i++)
    {
        vector<int> cnt;
        int j=0;
        while(true){
            if(j==sz(neigh[i])){
                if(sz(cnt)==0) break;
                j=cnt.back()+1;
                cnt.pop_back();
                continue;
            }
            bool b=true;
            for (auto u: cnt) { if(!is_connect[neigh[i][u]][neigh[i][j]]) b=false; }
            if(b) cnt.push_back(j);
            mx=max(mx,sz(cnt)+1);
            j++;
        }        
    }
    cout << mx << "\n";
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...