USACO1.1.2[Greedy Gift Givers]

亦为白菜题,直接模拟.

  1. {
  2. ID:idontknow
  3. PROG:gift1
  4. LANG:PASCAL
  5. }
  6. var
  7.     j, cash, num, i, hash, np : longint;
  8.     na : array[1 .. 10of string[14];
  9.     money : array[1 .. 10of longint;
  10.     st : string;
  11.     
  12. function hh(s : string) : longint;
  13. var
  14.     i : longint;
  15. begin
  16.     for i := 1 to np do 
  17.         if s = na[i] then begin
  18.             hh := i;
  19.             break;
  20.         end;
  21. end;
  22. begin
  23.     assign(input,'gift1.in'); reset(input);
  24.     assign(output,'gift1.out'); rewrite(output);
  25.     readln(np);
  26.     for i := 1 to np do 
  27.         readln(na[i]);
  28.     for i := 1 to np do begin
  29.         readln(st);
  30.         hash := hh(st);
  31.         readln(cash, num);
  32.         if num <> 0 then begin
  33.             money[hash] := money[hash] - cash + cash - num * (cash div num);
  34.             cash := cash div num;
  35.             for j := 1 to num do begin
  36.                 readln(st);
  37.                 hash := hh(st);
  38.                 money[hash] := money[hash] + cash;
  39.             end;
  40.         end else
  41.             money[hash] := money[hash] + cash;
  42.     end;
  43.     for i := 1 to np do
  44.         writeln(na[i], ' ', money[i]);
  45.     close(input); close(output);
  46. end.
  47.         
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值