Submission #197169

#TimeUsernameProblemLanguageResultExecution timeMemory
197169arnold518Political Development (BOI17_politicaldevelopment)C++14
4 / 100
123 ms5112 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAXN = 5e4; int N, K, ans=1; vector<int> adj[MAXN+10]; vector<int> adj2[MAXN+10]; bool vis[MAXN+10]; int main() { int i, j, k, p; scanf("%d%d", &N, &K); for(i=1; i<=N; i++) { int s; scanf("%d", &s); while(s--) { int t; scanf("%d", &t); adj[i].push_back(t+1); } } for(i=1; i<=N; i++) sort(adj[i].begin(), adj[i].end()); while(1) { pii t(987654321, 0); for(i=1; i<=N; i++) if(!vis[i]) t=min(t, pii(adj[i].size(), i)); if(t.second==0) break; int now=t.second; vector<int> chd; for(auto it : adj[now]) chd.push_back(it); for(auto it : chd) for(auto jt : chd) if(binary_search(adj[it].begin(), adj[it].end(), jt)) adj2[it].push_back(jt); for(i=0; i<(1<<chd.size()); i++) { vector<int> V; for(j=0; j<chd.size(); j++) if(i&(1<<j)) V.push_back(chd[j]); bool flag=true; for(j=0; j<V.size(); j++) { for(k=j+1, p=0; k<V.size(); k++) { for(; p<adj2[V[j]].size() && adj2[V[j]][p]<V[k]; p++); if(adj2[V[j]][p]!=V[k]) flag=false; } } if(flag) ans=max(ans, (int)V.size()+1); } vis[now]=true; for(auto it : chd) adj2[it].clear(); for(auto it : chd) adj[it].erase(lower_bound(adj[it].begin(), adj[it].end(), now)); adj[now].clear(); } printf("%d", ans); }

Compilation message (stderr)

politicaldevelopment.cpp: In function 'int main()':
politicaldevelopment.cpp:42:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(j=0; j<chd.size(); j++) if(i&(1<<j)) V.push_back(chd[j]);
             ~^~~~~~~~~~~
politicaldevelopment.cpp:44:14: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(j=0; j<V.size(); j++)
             ~^~~~~~~~~
politicaldevelopment.cpp:46:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(k=j+1, p=0; k<V.size(); k++)
                     ~^~~~~~~~~
politicaldevelopment.cpp:48:13: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for(; p<adj2[V[j]].size() && adj2[V[j]][p]<V[k]; p++);
            ~^~~~~~~~~~~~~~~~~~
politicaldevelopment.cpp:18:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &N, &K);
  ~~~~~^~~~~~~~~~~~~~~~
politicaldevelopment.cpp:22:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &s);
   ~~~~~^~~~~~~~~~
politicaldevelopment.cpp:23:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   while(s--) { int t; scanf("%d", &t); adj[i].push_back(t+1); }
                       ~~~~~^~~~~~~~~~
#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...