1 solutions
-
0
C++ :
#include<stdio.h> #include<string.h> #include<stdlib.h> int c=0,n,m,map[220][220]; int vis[220]; void dfs(int x,int s) { if (x==n+1) { if (s>c) { c=s; } return; } if (s==m) { printf("%d",s); exit(0); } int i; for (i=0;map[x][i]!=-1;i++) { if (!vis[map[x][i]]) { vis[map[x][i]]=1; dfs(x+1,s+1); vis[map[x][i]]=0; } } if (s+n+1-x>c) dfs(x+1,s); } int main() { int i,j,k; scanf("%d%d",&n,&m); for (i=1;i<=n;i++) { scanf("%d",&k); for (j=0;j<k;j++) { scanf("%d",&map[i][j]); } map[i][j]=-1; } memset(vis,0,sizeof(vis)); dfs(1,0); printf("%d",c); return 0; }
- 1
Information
- ID
- 19417
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By