Click
Here to go back to the homepage.
Prerequisites? Solution:
#include <bits/stdc++.h>
using namespace std;
int main(){
// #ifndef TESTING
// freopen("input.txt", "r", stdin);
// freopen("output.txt", "w", stdout);
// #endif
int nSelectedCourses, categories;
cin >> nSelectedCourses >> categories;
while(true){
bool selectedCourses[10000] = {};
for(int i = 0; i < nSelectedCourses; i++){
int selectedCourse;
cin >> selectedCourse;
selectedCourses[selectedCourse] = true;
}
bool fulfilled = true;
for(int i = 0; i < categories; i++){
int fulfillingCourses, requirement;
cin >> fulfillingCourses >> requirement;
int fulfilledCount = 0;
bool fulfilledCategory = false;
for(int j = 0; j < fulfillingCourses; j++){
int fulfillingCourse;
cin >> fulfillingCourse;
if(fulfilled && !fulfilledCategory){
if(selectedCourses[fulfillingCourse]){
if(++fulfilledCount >= requirement){
fulfilledCategory = true;
}
}
}
}
if(fulfilledCategory == false){
fulfilled = false;
}
}
if(fulfilled){
cout << "yes" << endl;
} else {
cout << "no" << endl;
}
cin >> nSelectedCourses;
if(nSelectedCourses > 0){
cin >> categories;
} else {
break;
}
}
return 0;
}