// 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