#include<stdio.h>
#define MAX_SUBJECTS (1000 + 1)
#define MAX_LIMITATIONS (100000 + 1)
int before[MAX_LIMITATIONS];
int after[MAX_LIMITATIONS];
int orders[MAX_SUBJECTS];
int main(){
int numOfSubjects, numOfLimitations;
scanf("%d %d", &numOfSubjects, &numOfLimitations);
int indexOfLimitation;
for (indexOfLimitation = 1; indexOfLimitation <= numOfLimitations; indexOfLimitation++){
scanf("%d %d", &before[indexOfLimitation], &after[indexOfLimitation]);
}
int indexOfSubject;
for (indexOfSubject = 1; indexOfSubject <= numOfSubjects; indexOfSubject++){
int subject;
scanf("%d", &subject);
orders[subject] = indexOfSubject;
}
int isCorrect = 1;
for (indexOfLimitation = 1; indexOfLimitation <= numOfLimitations; indexOfLimitation++){
if (orders[ before[indexOfLimitation] ] > orders[ after[indexOfLimitation] ] ){
isCorrect = 0;
break;
}
}
if (isCorrect == 1){
printf("YES");
} else {
printf("NO");
}
return 0;
}
URAL 1280 Topological Sorting
最新推荐文章于 2018-06-21 20:35:36 发布