SDNU 1019.礼物(水题)
生活随笔
收集整理的這篇文章主要介紹了
SDNU 1019.礼物(水题)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description
圣誕節快到了,同學們每個人都準備了一定的錢用來買禮物。已知每個人送禮物的時候都會把自己準備的錢平均分成自己要送的人數份,送給自己的好友,剩余的錢留在自己手中。同時,也會收到若干份禮物。現在,LG統計了一下每個人送禮的情況,想請你計算一下大家賠了還是賺了。
Input
第1行一個整數N(0<N<=100),表示人數;第2行至第N + 1每行一個長度小于50的字符串,表示每個人的名字;
其后N段,每段第一行為人名;
每段第二行為兩個整數Si(0<=Si<=10000),Ki(0<=Ki<M),表示這個人準備的用于送禮的錢數和他要送的好友數;
每段其余Ki行每行一個人名,表示要送給的好友。
Output
共N行,按照輸入第2至第N + 1行給定的順序輸出人名及每個人賺了多少(若賠了則輸出負數)Sample Input
3 LG SYC WZ LG 55 2 SYC WZ SYC 100 0 WZ 77 2 LG SYCSample Output
LG -16 SYC 65 WZ -49Source
SDNU ACM-ICPC 2011復賽(2011級) #include<bits/stdc++.h> using namespace std;#define ll long long #define eps 1e-9const int inf = 0x3f3f3f3f; const int mod = 1e9+7; const int maxn = 100000 + 8;struct node {string name;int money, sum; }a[100000 + 8];int main() {int n, num, mon;string name;std::ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>n;for(int i = 0; i < n; i++){cin>>a[i].name;a[i].sum = 0;}for(int i = 0; i < n; i++){cin>>name;cin>>mon>>num;for(int j = 0; j < n; j++){if(a[j].name == name && num > 0){a[j].sum -= (mon / num) * num;///計算一開始負了多少錢break;}}for(int j = 0; j < num; j++){cin>>name;for(int k = 0; k < n; k++){if(a[k].name == name){a[k].sum += (mon / num);break;}}}}for(int i = 0; i < n; i++){cout<<a[i].name<<" "<<a[i].sum<<'\n';}return 0; }?
轉載于:https://www.cnblogs.com/RootVount/p/11419323.html
總結
以上是生活随笔為你收集整理的SDNU 1019.礼物(水题)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SDNU 1011.盒子与球(斯特林函数
- 下一篇: SDNU 1029.巧分整数(斯特林数(