1. 程式人生 > >[NYISTOJ] 題目845 無主之地1

[NYISTOJ] 題目845 無主之地1

這個題 坑爹在不用排序 

區域有了就加任務數

區域沒有就往後新建區域

用到了結構體 

陣列應該也是可以的

#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;
}