题解
【基础】贪婪的送礼者Greedy Gift Givers(USACO1.1)
1 条题解
-
0
#include <iostream> #include <string> using namespace std; struct Person { string name; int sent; int received; } p[15]; int main() { int n; cin >> n; for (int i = 0; i < n; i++) { cin >> p[i].name; p[i].sent = 0; p[i].received = 0; } for (int i = 0; i < n; i++) { string s; int money, num; cin >> s >> money >> num; for (int j = 0; j < n; j++) { if (s == p[j].name && num!= 0) { p[j].sent = money - money % num; break; } } for (int j = 0; j < num; j++) { string receiver; cin >> receiver; for (int k = 0; k < n; k++) { if (receiver == p[k].name) { p[k].received += money / num; break; } } } } for (int i = 0; i < n; i++) { cout << p[i].name << " " << p[i].received - p[i].sent << endl; } return 0; }
- 1