Guest User

Untitled

a guest
Jun 21st, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. // uva 11825
  2. #include<algorithm>
  3. #include<bitset>
  4. #include<cctype>
  5. #include<cmath>
  6. #include<complex>
  7. #include<cstdio>
  8. #include<cstdlib>
  9. #include<cstring>
  10. #include<functional>
  11. #include<iostream>
  12. #include<istream>
  13. #include<iterator>
  14. #include<list>
  15. #include<map>
  16. #include<numeric>
  17. #include<queue>
  18. #include<set>
  19. #include<fstream>
  20. #include<stack>
  21. #include<strstream>
  22. #include<streambuf>
  23. #include<string>
  24. #include<utility>
  25. #include<vector>
  26. #include<iomanip>
  27. using namespace std;
  28.  
  29. int g[18];int grid[18][18];
  30. int n,m;
  31. int B[(1<<17)+3];
  32.  
  33.  
  34. int setbit(int ind,int bit, int attack)
  35. {
  36. for(int i=ind+1;i<n;i++)
  37. {
  38. if(grid[ind][i])
  39. {
  40. B[bit|(1<<i)]=(attack|g[i]);
  41. setbit(i,bit|(1<<i),attack|g[i]);
  42.  
  43. }
  44. }
  45.  
  46. }
  47.  
  48.  
  49.  
  50. int main()
  51. {
  52. int i,j,k;
  53. int cas,ks=0;
  54. while(cin>>n)
  55. {
  56. if(!n)break;
  57. ++ks;
  58. memset(g,0,sizeof g);
  59. for(i=0;i<=n;i++)grid[0][i]=1;
  60. for(i=1;i<=n;i++)
  61. {
  62. cin>>m;
  63. for(j=0;j<m;j++)
  64. {
  65. cin>>k;
  66. g[i]|=(1<<(k+1));
  67. grid[i][k+1]=1;
  68. }
  69. }
  70.  
  71.  
  72. setbit(0,0,0);
  73. int ans=0;
  74. int N=(1<<(n+1));
  75. int a;
  76. for(i=0;i<=N;i++)
  77. {
  78. a= __builtin_popcount(B[i]);
  79. ans=max(ans, a );
  80. }
  81.  
  82. cout<<ans<<endl;
  83. }
  84. }
Add Comment
Please, Sign In to add comment