// UVa 12394 - Peer Review
#include <string>
#include <vector>
#include <iostream>
#include <sstream>
#include <algorithm>
using namespace std;
string institution[1001];
vector<int> reviewers[1001];
int main() {
int k, n;
while ((cin >> k >> n) && (n || k)) {
string line;
getline(cin, line);
for (int i = 1; i <= n; i++)
reviewers[i].clear();
for (int i = 1; i <= n; i++) {
getline(cin, line);
istringstream istream(line);
istream >> institution[i];
int p;
while (istream >> p)
reviewers[p].push_back(i);
}
int sol = 0;
for (int p = 1; p <= n; p++) {
sort(reviewers[p].begin(), reviewers[p].end());
bool bad = reviewers[p].size() == 0
|| institution[reviewers[p][0]] == institution[p];
for (int j = 1; j < reviewers[p].size(); j++) {
if (reviewers[p][j] == reviewers[p][j - 1]) {
bad = true;
break;
}
if (institution[reviewers[p][j]] == institution[p]) {
bad = true;
break;
}
}
if (reviewers[p].size() != k)
bad = true;
if (bad)
sol++;
}
if (sol == 0)
cout << "NO PROBLEMS FOUND" << endl;
else if (sol == 1)
cout << "1 PROBLEM FOUND" << endl;
else
cout << sol << " PROBLEMS FOUND" << endl;
}
return 0;
}
Monday, May 4, 2015
UVa 12394 - Peer Review
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment