火燒連營

題目描述
  曹操平定北方以後,公元208年,率領大軍南下,進攻劉表。他的人馬還沒有到荊州,劉表已經病死。他的兒子劉琮聽到曹軍聲勢浩大,嚇破了膽,先派人求降了。
  孫權任命周瑜爲都督,撥給他三萬水軍,叫他同劉備協力抵抗曹操。
  隆冬的十一月,天氣突然回暖,颳起了東南風。
  沒想到東吳船隊離開北岸大約二里距離,前面十條大船突然同時起火。火借風勢,風助火威。十條火船,好比十條火龍一樣,闖進曹軍水寨。那裏的船艦,都擠在一起,又躲不開,很快地都燒起來。一眨眼工夫,已經燒成一片火海。
  曹操氣急敗壞的把你找來,要你鑽入火海把連環線上着火的船隻的長度統計出來!

輸入
  第一行:N
  以後N行,每行兩個數:Ai Bi(表示連環線上着火船隻的起始位置和終點,-109<=Ai,Bi<=109)
輸出
  輸出着火船隻的總長度

樣例輸入
  3
  -1 1
  5 11
  2 9
樣例輸出
  11
提示
  n<=20000

  如果Ai=Bi是一個點則看作沒有長度


  此題毫無亮點,按部就班即可。

附上代碼:

#include<stdio.h>
typedef struct
{
    int start;
    int end;
} Boat;
int main()
{
    int n,i,j;
    scanf("%d",&n);
    Boat boat[n],temp;
    for(i = 0; i < n; i++)
    {
        scanf("%d %d",&boat[i].start,&boat[i].end);
    }
    for(i = 0; i < n - 1; i++)
    {
        for(j = i + 1; j < n; j++)
        {
            if(boat[i].start > boat[j].start)
            {
                temp = boat[i];
                boat[i] = boat[j];
                boat[j] = temp;
            }
        }
    }
    for(i = 0; i < n-1; i++)
    {
        for(j = i + 1; j < n; j++)
        {
            if(boat[i].start == boat[j].start)
            {
                if(boat[i].end <= boat[j].end)
                {
                    boat[i].start = boat[i].end = 0;
                }
                else
                {
                    boat[j].end = boat[i].end;
                    boat[i].start = boat[j].end = 0;
                }
            }
            else
            {
                if(boat[i].end >= boat[j].start&&boat[i].end <= boat[j].end)
                {
                    boat[j].start = boat[i].start;
                    boat[i].start = boat[i].end = 0;
                }
                else if(boat[i].end > boat[j].end)
                {
                    boat[j] = boat[i];
                    boat[i].start = boat[i].end = 0;
                }
            }
        }
    }
    for(i = 0,j = 0; i < n; i++)
    {
        j += boat[i].end - boat[i].start;
    }
    printf("%d",j);
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章