这道题看起来相当简单,但是做起来并不是那么容易AC,我错了好多遍,主要是没理解清题意,先前以为要排序,所以搞个桶排序,谁知道原是不需要排序,按照顺序将其输出即可,既然·这样的话,那么我就再开一个flag数组,然后就再记录下来这些数字,类似于用数组模拟链表一样,这样就简单多了,这个题虽然耗费了时间,但是我对于数组模拟链表的理解更深刻了。
描述
子晓最近在玩无主之地1,他对这个游戏的评价不错,结合了FPS与RPG元素,可玩度很高。不过,他发现了一代的任务系统做的不好,任务系统并没有帮他统计清楚哪个区域有多少任务,而且,给任务的时候呢,也比较散乱。比如,在1区域的一个任务点,你领到了4个任务;2区域的一个任务点,你领到了3个任务;游戏一段时间后,你又在1区域另一个任务点个领到了3任务(之前任务没有完成),3区域领到了9个任务……他感觉很凌乱,现在他要设计一个程序来统计每个区域有多少个任务。
输入
多组测试数据,以输入0 0结束
每组数据占一行,输入m区域,n个任务(0<m,n<100)
输出
输出各个区域的统计结果(不要求排序)
样例输入
1 3
2 3
3 4
1 7
0 0
样例输出
1 10
2 3
3 4
#include<iostream>
#include<cstring>
using namespace std;
int main(){
int a,b;
int book[101];
int flag[101];
int top=0;
memset(flag,0,sizeof(flag));
memset(book,0,sizeof(book));
while(cin>>a>>b){
int f=0;
if(a==0&&b==0)break;
for(int i=0;i<top;i++){
if(a==flag[i]){
book[flag[i]]+=b;
f=1;
}
}
if(f==1)continue;
flag[top++]=a;
book[flag[top-1]]+=b;
}
for(int i=0;i<top;i++){
cout<<flag[i]<<" "<<book[flag[i]]<<endl;
}
return 0;
}
每天进步一点点,时刻不忘初心;