Submission #1307940

#TimeUsernameProblemLanguageResultExecution timeMemory
1307940StefanSebezPolitical Development (BOI17_politicaldevelopment)C++20
100 / 100
656 ms72440 KiB
#include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define ll long long #define ld long double #define mp make_pair const int N=5e4+50; vector<int>E[N]; int n,K,deg[N]; bool was[N]; map<ll,bool>mapa; int main(){ scanf("%i%i",&n,&K); for(int i=0;i<n;i++){ int m;scanf("%i",&m); for(int j=1;j<=m;j++){ int u;scanf("%i",&u); E[i].pb(u); deg[i]++; mapa[u+(((ll)i)<<32)]=true; } } int res=0; queue<int>kju; for(int i=0;i<n;i++)if(deg[i]<K)kju.push(i); while(!kju.empty()){ int u=kju.front();kju.pop(); if(was[u])continue; was[u]=true; vector<int>temp; for(auto i:E[u])if(!was[i])temp.pb(i); E[u]=temp; int m=E[u].size(); for(int mask=0;mask<1<<m;mask++){ bool moze=true; for(int i=0;i<m&&moze;i++)if(mask>>i&1){ for(int j=i+1;j<m&&moze;j++)if(mask>>j&1){ if(!mapa[E[u][i]+(((ll)E[u][j])<<32)])moze=false; } } if(moze)res=max(res,1+__builtin_popcount(mask)); } for(auto i:E[u]){ deg[i]--; if(deg[i]<K)kju.push(i); } } printf("%i\n",res); return 0; }

Compilation message (stderr)

politicaldevelopment.cpp: In function 'int main()':
politicaldevelopment.cpp:15:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   15 |     scanf("%i%i",&n,&K);
      |     ~~~~~^~~~~~~~~~~~~~
politicaldevelopment.cpp:17:20: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   17 |         int m;scanf("%i",&m);
      |               ~~~~~^~~~~~~~~
politicaldevelopment.cpp:19:24: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   19 |             int u;scanf("%i",&u);
      |                   ~~~~~^~~~~~~~~
#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...