ChinaUnix第一屆「C語言」開發大賽的第二題

2021-04-27 21:30:27 字數 2419 閱讀 4463

第二題:給定

n(3 £n

£50000)

個閉區間

[ai, bi](1 £i

£n, ai,bi

均為非負整數),將這些區間合併為不相交的閉區間。

輸入檔案

的第一行包含乙個整數n,為區間的數目。以下有n行,每行各包括兩個空格分隔的整數ai

和bi,表示乙個區間[ai, bi](0 £ai

£bi£1000000)

。計算結果寫在標準輸出上,

各區間按照公升序排列輸出。

每一行包含兩個用空格分開的整數,分別描述乙個區間的上下界。例如,對於下列輸入資料: 5

5 61 4

10 10

6 98 10

輸出為:

1 45 10

個人寫的具體實現,**如下:

#include

#include

#define len sizeof(struct area)

/*定義區間結構體*/

struct area ;

/*最後一次修正資料*/

void lastamend(area *head)

else

//刪除結點

p = myarea->next;

myarea->next = p->next;

free(p); }

} }/*按照左區間從小到大的順序插入節點*/

int insertnode(area *head, area *instertedarea)

head = head->next; }

head->next = instertedarea;

instertedarea->next = null;

return 0; }

/*第一次修正資料*/

void firstamend(area *headone, area *headtwo)

else if (headdynamic->second <= headtwotemp->second)

else if (headdynamic->second > headtwotemp->second)

} else

else if (headdynamic->second > headtwotemp->second)

else if (headdynamic->second <= headtwotemp->second)

} headtwotemp = headtwotemp->next; }

/*新建結點,插入到第二個鍊錶*/

if (sig)

/*移動到下乙個源資料,進行比較*/

freedarea = headdynamic;

headdynamic = headdynamic->next;

/*釋放的第乙個鍊錶中,剛遍歷的節點*/

free(freedarea); }

/*釋放第乙個鍊錶的頭節點*/

free(headone); }

int main(void)

} while(count<3 || count>50000);

/*輸入每個區間,並動態建立鍊錶*/

bool iswrong;

area *headone = (struct area*)malloc(len);

area *headdynamic = headone;

area *temp;

do

headdynamic->next = temp;

headdynamic = temp;  }

} while(iswrong);

area *headtwo = (struct area*)malloc(len);

temp = (struct area*)malloc(len);

temp->next = null;

headtwo->next = temp;

headdynamic = headone->next;

temp->first = headdynamic->first;

temp->second = headdynamic->second;

/*具體實現*/

firstamend(headone->next,headtwo);

/*最後一次修正*/

lastamend(headtwo);

/*輸出結果*/ 

printf("輸出結果:/n");

headdynamic = headtwo->next;

while (headdynamic != null)

/*動態釋放第二個鍊錶*/ 

area* releasetemp;

while (headtwo != null)

return 0; }

ChinaUnix第一屆「C語言」開發大賽的第三題

3.從標準輸入中讀入 n 1行以換行符結束且長度不超過 2048 的字串,並在輸入結束後輸出其中最長 10行的輸入序號 長度和內容。當有多行長度相等的最長行時,輸出最先輸入的行的資訊。個人寫的 如下 include include include define len sizeof struct l...

ChinaUnix第一屆「C語言」開發大賽的第一題

給定乙個整數n,生成乙個n n的矩陣,矩陣中元素取值為1至 n2,1在左上角,其餘各數按順時針方向旋轉前進,依次遞增放置。例如,當 n 4時,矩陣中的內 容如下 12 341213145 1116156 10987 個人寫的 如下 include include 矩陣賦值 思想是 就是一圈一圈的賦值...

記第一屆ACM講堂

今天acm講堂成功舉辦了,我聽了眾位學長的講解,感觸頗多,首先對於那些伴隨著acm實驗室成長的學長們,致以感謝和敬意,為acm實驗室操勞的老師們,表示感激和尊敬,是你們給我們創造了現在這麼好的環境和氛圍,為我們開闢了acm的道路。大三的學長 學姐 們講自己的acm經歷的時候,這種情形讓我想起了高中全...