Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int n,m,k,max=-1;
- int room[500005]= {0},tele[1000005][2]; // ห้องเริ่มที่ 1
- int cmp(const void *a,const void *b)
- {
- int *aa=(int *)a;
- int *bb=(int *)b;
- if(aa[0]>bb[0]) return 1;
- else return -1;
- }
- int f(int st)
- {
- if(st>n) return 0;
- if(st>max) max=st;
- if(room[st]==0) f(st+1);
- int i,run;
- for(i=1; i<=m; i++)
- {
- if(tele[i][0]==st)
- {
- run=i;
- while(tele[run][0]==st)
- {
- f(tele[run][1]);
- run++;
- }
- return 0;
- }
- }
- return 0;
- }
- int main()
- {
- int i;
- int rock;
- scanf("%d%d%d",&n,&m,&k);
- for(i=1; i<=m; i++)
- {
- scanf("%d%d",&tele[i][0],&tele[i][1]);
- }
- qsort(tele+1,m,sizeof(tele[0]),cmp);
- for(i=0; i<k; i++)
- {
- scanf("%d",&rock);
- room[rock]=1;
- }
- f(1);
- if(max>=n) printf("1");
- else printf("0 %d",max);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement