URAL 1280 Topological Sorting

#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;
}

你可能感兴趣的:(sorting,1280,Topological,ural)