您的位置:首页 > 编程语言 > C语言/C++

南阳理工OJ 题目845 无主之地1

2017-12-16 11:05 344 查看


这个题 坑爹在不用排序 

区域有了就加任务数

区域没有就往后新建区域

用到了结构体 

数组应该也是可以的

#include <iostream>
using namespace std;
struct num//结构体
{
int ns,sum;//定义区域,任务数
}arr[110];//注意范围
int main()
{
int a,b,flag,tf=0;//tf就是区域指示下标 没有了往后开一个新的也就是tf++
cin>>arr[0].ns>>arr[0].sum;//第一组肯定是有的 单独输入
while(cin>>a>>b&&a||b) //从第二组开始输入
{
flag=0;//flag用来遍历是否已经存在这个区域

for(int i=0;i<=tf;i++)//遍历是否已存在区域

{
if(arr[i].ns==a)
{
arr[i].sum+=b;//存在任务数加起来
flag=1;
break;
}
}
if(flag==0)//不存在新建区域 任务数赋初值
{
tf++;
arr[tf].sum=b;
arr[tf].ns=a;
}
flag=0;//flag恢复初态
}
for(int i=0;i<=tf;i++)//tf是区域指示下标 范围内直接输出
cout<<arr[i].ns<<' '<<arr[i].sum<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  acm c++ NOIP 南阳理工OJ