uva 119 Greedy Gift Givers

来源:互联网 发布:php mvc demo 编辑:程序博客网 时间:2024/06/07 04:51

题目:送礼物:输入n个人之间互送礼物。然后依次输入。送礼人姓名 钱数 份数 收礼人姓名

注意:1 格式,虽然是eof终止,但也要注意格式

2 map<string,int> 类型虽然好用,好理解但也会造成一些麻烦


PS:本题最简单快捷的方法应该就是建个string数组即可。我是为了练习使用map才。用的。考试还是尽量少用。很容易出错,而且迭代器也不好用

#include<stdio.h>#include<stdlib.h>#include<string.h>#include<string>#include<cstdio>#include<iostream>#include<math.h>#include <map>#include <vector>#include <algorithm>#include <sstream>#include <queue>using namespace std;int main(){    map<string,int> gifter;    map<string,int>::iterator it;    int num;    int never_Presentation_error;    while(scanf("%d",&num) != EOF){        if(never_Presentation_error++) cout<<endl;//!!!!!!格式错误大多是因为空行!最后一行没有空行这样解决!        string name_order[10];        for (int i = 0; i < num; i++) {            //因刚开始没有考虑用map会自动按照字典序。加一个数组。保存名字            string name;            cin>>name;            name_order[i] =name;            gifter[name] = 0;//initilize        }        for (int i = 0; i < num; i++) {            string out,in;            int out_sum,out_divide;            cin>>out;            cin>>out_sum;            cin>>out_divide;            gifter[out] -= out_sum;            //判断零头            int in_sum;            if(out_divide != 0) in_sum = out_sum / out_divide;//刚开始没有这句话,一定要注意分母不为0            int pocket_money = out_sum - (out_divide * in_sum);            gifter[out] += pocket_money;            //            for (int i = 0; i < out_divide; i++) {                cin >> in;                gifter[in] += in_sum;            }        }//一整条语句        /*刚开始没有考虑用map会自动按照字典序        for (it = gifter.begin();it != gifter.end(); it++) {            cout<< it->first << " " << it->second<<endl;        }*/        for (int i = 0; i < num; i++) {            cout<<name_order[i]<<" "<<gifter[name_order[i]]<<endl;        }        //cout<<endl;        gifter.clear();    }    return 0;}/* 5 dave laura owen vick amr dave 200 3 laura owen vick owen 500 1 dave amr 150 2 vick owen laura 0 2 amr vick vick 0 0 3 liz steve dave liz 30 1 steve steve 55 2 liz dave dave 0 2 steve liz */


0 0
原创粉丝点击