#include #include #define MAXN 5000 int influ[MAXN]; unsigned short a[MAXN][MAXN]={{0}}; unsigned short nr[MAXN]={0}, X[MAXN], n, k; int eliminate_space() { char ct; while ((ct=getc(stdin))==' '); if ((ct=='\n')||(ct==EOF)) return 1; else ungetc(ct, stdin); return 0; } void read_input() { unsigned short i, idx, t; int el; //end of line scanf("%hu%hu", &n, &k); for (i=0; i!=n; i++) influ[i]=-1; for (i=0; i!=k; i++) { scanf("%hu", &X[i]); X[i]--; //trecem in coordonate C } for (i=0; i!=n; i++) { scanf("%hu", &idx); idx--; el=0; while (!el) { if (eliminate_space()) el=1; //iseim din ciclu if (!el) { scanf("%hu", &t); t--; a[idx][nr[idx]]=t; nr[idx]++; } } } } void in_deepth(unsigned short idx) { unsigned short i; influ[idx]=0; for (i=0; i!=nr[idx]; i++) { if (influ[a[idx][i]]==-1) in_deepth(a[idx][i]); influ[idx]+=influ[a[idx][i]]+1; //putem influenta si pe el } } void max_influ() { unsigned short i, idx, maxinf=0, maxidx=0; for (i=0; i!=k; i++) { idx=X[i]; if (influ[idx]==-1) in_deepth(idx); if ((influ[idx]>maxinf)||((influ[idx]==maxinf)&&(idx