日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1019.礼物

發布時間:2024/5/14 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1019.礼物 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Time Limit: 1000 MS ?? Memory Limit: 32768 KB
Total Submission(s):?708??? Accepted Submission(s):?261

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 SYC

Sample Output

LG -16 SYC 65 WZ -49

Source

SDNU ACM-ICPC 2011復賽(2011級)

注意:

(一)

if(x[i].name == s)對標的是:

char name[58];

string s;

string name[58];

string s;

不可以

char name[58];

char s[58];

解決:用

if(strcmp(s,x[i].name)==0)

(二)

無法整除的解決核心:

x[k].sum-=(mon/num)*num;

x[j].sum += (mon / num);

附上AC代碼:

#include <cstdio> #include <iostream> using namespace std;struct node {char name[58];int sum; }x[100000 + 8];int n,i,k,j,t,mon,num; string s;int main() {cin>>n;for(i=0; i<n; i++){scanf("%s",&x[i].name);x[i].sum=0; }for(i=0; i<n; i++){cin>>s;scanf("%d%d",&mon,&num);for(int k=0; k<n; k++){if(x[k].name == s){if(num==0)x[k].sum-=0;else if(num>0) x[k].sum-=(mon/num)*num;break;// }}for(int k= 0; k < num; k++){cin>>s;for(int j= 0; j < n; j++){if(x[j].name == s){if(num==0)x[j].sum+=0;elsex[j].sum += (mon / num);break;}}}}for(i = 0; i < n; i++){cout<<x[i].name<<" "<<x[i].sum<<'\n';}return 0; }


?

總結

以上是生活随笔為你收集整理的1019.礼物的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。