【问题描述】
大家都知道,高三的同学很辛苦,需要补充很多营养。但是由于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
这题难度中等,用数组下标就可以。
话不多说,上代码!!!
#include<bits/stdc++.h>
using namespace std;
int n,d,g,z;
char a[19999],b[19999];
int main()
{
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i]>>b[i];
for(int i=1;i<=n;i++)
{
if(a[i]=='G')g++;
else if(a[i]=='D')d++;
else if(a[i]=='Z')z++;
if(b[i]=='G')g--;
else if(b[i]=='D')d--;
else if(b[i]=='Z')z--;
}
cout<<'D'<<" "<<d<<endl;
cout<<'G'<<" "<<g<<endl;
cout<<'Z'<<" "<<z<<endl;
return 0;
}