2062. 【2016.10.4NOIP普及模拟】Bill

题目描述

 大家都知道,高三的同学很辛苦,需要补充很多营养。但是由于CZYZ高三教室在4楼和5楼,而高一教室在1楼和2楼,所以导致高三同学总是很难到想吃的东西。又由于D,G,Z的动作总是很慢,所以想吃到不错的午餐更是艰难。
 所以自从不用上课,X就承担下了代购午餐的任务。但是由于X不上晚自习,不能代购晚餐,所以大家商议决定每周轮流留一张饭卡给X。
 可是计划赶不上变化,期间出现了忘换饭卡之类的一系列问题,导致了账目的混乱,于是X又承担下了记录账目的任务。
 每天被账目搞得一团糟的X想请你帮她写一个程序,来清楚地记账。

输入

 第1行一个整数n(0<n≤10000), 表示需要记录账目天数。
  第2至n行每行两个字母(只含D,G,Z),表示前一个同学欠后一个同学一顿饭,字母之间有一个空格。

输出

共3行,每行一个字母和一个数字,之间有一个空格,行末无空格。
第1行D x1
第2行G x2
第3行Z x3
Xi为正数是表示该同学欠了别人xi顿;0表示该同学既不欠人,也不被欠;负数表示该同学被欠xi顿。

样例输入

5
D G
G D
G Z
D G
D Z

样例输出

D 2
G 0
Z -2

数据范围限制

题解:

我也不想多说什么,突然发现的规律,写完后测了几个点,没问题就交了······

代码:

var
  n,i:longint;
  x,y,z:char;
  a:array[1..3] of longint;
begin
  assign(input,'bill.in');reset(input);
  assign(output,'bill.out');rewrite(output);
  readln(n);
  for i:=1 to n do
    begin
      readln(x,z,y);
      if x='D' then inc(a[1]);
      if x='G' then inc(a[2]);
      if x='Z' then inc(a[3]);
      if y='D' then dec(a[1]);
      if y='G' then dec(a[2]);
      if y='Z' then dec(a[3]);
    end;
  writeln('D ',a[1]);
  writeln('G ',a[2]);
  writeln('Z ',a[3]);
  close(input);close(output);
end.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值