section3-3.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. struct Grade {
  5. string Id;
  6. int Score;
  7. };
  8. int main() {
  9. int N = 0, M = 0, G = 0;
  10. int *questions;
  11. while (cin >> N && N) {
  12. cin >> M >> G;
  13. questions = new int[M];
  14. vector<Grade> grade;
  15. // input question scoreIndex
  16. for (int i = 0; i < M; i++) {
  17. cin >> questions[i];
  18. }
  19. int answer;
  20. int total, scoreIndex;
  21. string id;
  22. for (int i = 0; i < N; i++) {
  23. answer = 0;
  24. total = 0, scoreIndex = 0;
  25. cin >> id;
  26. cin >> answer;
  27. answer = answer > M ? M : answer;
  28. for (int j = 0; j < answer; j++) {
  29. cin >> scoreIndex;
  30. total += questions[scoreIndex];
  31. }
  32. if (total < G) {
  33. continue;
  34. }
  35. Grade tempGrade = {id, total};
  36. grade.push_back(tempGrade);
  37. }
  38. for (int i = 0; i < (grade.size()); i++) {
  39. cout << "id: " << grade.at(i).Id << "; scoreIndex: " << grade.at(i).Score << endl;
  40. }
  41. // free
  42. free(questions);
  43. grade.clear();
  44. }
  45. }