準備 考試 休息。。。

2022-08-31 15:48:16 字數 1652 閱讀 7796

petya在大學學習。n個考試日作為本學期的結束。petya需要在這些特殊的日子裡通過m個考試。此問題中的特殊日期從1到n編號。

每個考試有三個值:

petya應該在si和di-1之間的天內準備第i次考試,包括在內。

petya每天有三種活動型別:花一天假裝鹹魚(休息),花一天時間通過一次考試,或花一天準備一次考試。所以他不能一天通過/準備多次考試。他不能在一天內混合他的活動。如果他在第j天準備第i次考試,那麼si≤j允許在準備考試時休息一段時間,並在連續幾天內為不同考試做準備。所以準備考試不需要連續幾天完成。

找到petya為所有考試做準備並通過考試的時間表,或者報告說這是不可能的。

input

第一行包含兩個整數n和m(2≤n≤100,1≤m≤n) - 天數和考試次數。

以下m行中的每一行都包含三個整數si,di,ci(1≤si保證所有的考試將在不同的日子。 

output

如果petya無法準備並通過所有考試,請輸出-1。 在肯定答案的情況下,列印n個整數代表n天,其中第j個數字是:

考試從1開始編號。

如果有多個時間表,請列印其中的任何乙個。

sample input

input

5 2

1 3 1

1 5 1

output

1 2 3 0 3
input

3 2

1 3 1

1 2 1

output

-1
input

10 3

4 7 2

1 10 3

8 9 1

output

2 2 2 1 1 0 4 3 4 4
sample output

hint

例如,第乙個例子中,petya可以在第一天為第一天的考試做準備,在第二天為第二天的考試做好準備,在第三天通過考試1,在第四天鹹魚,在第五天通過考試2。 所以,他可以準備並通過所有考試。

在第二個例子中,有三天和兩次考試。 所以,petya只有一天做準備(因為在其他兩天裡他應該考試)。 然後petya無法準備並通過所有考試。 

#include#include#include#include#includeusing namespace std;

struct node

cls[111];

int ans[111];

bool cmp(node a, node b)

int main()

sort(cls, cls + m, cmp);//根據考試日期從小到大排序

//類似會場安排,貪心

for (int i = 0; i < m && flag; i++)//有m場考試,進行m次迴圈

if (!ans[k])//ans陣列等於0時,進入if,即這一天不是考試日期

//因為前面已經把ans陣列裡考試日期賦成了m+1

k++;//日期往後加一天}}

if (flag)//flag為1,說明考試都準備完了

}else

return 0;

}

準備考試的啟示

年年歲歲花相似,又到了放假考試的日子,校園裡辦起了學風建設。其實不用辦,學風這些日子很好,又應該辦平日裡這樣了活動又如何著手辦呢。批評這種現象的文字太多了,我再說就是浪費各位和自己的時間。我們這一代人都不喜歡空洞的說教,也許古人也不喜歡,要不然 空洞 二字就不會在古文中出現。我擔心的不是為了考試臨時...

如何準備考PMP

去年9月參加的考試,備考的時間也不是很長,現在我就來根據我的經驗來簡單的講一下。我的備考時間大概在2個月的左右吧,這個過程並不漫長,剛開始還是有些壓力的後面就漸漸沒什麼壓力了。因為pmp考試報名要求35學時的培訓證明,所以我還是找一家pmi官方認可的培訓機構,跟著培訓機構制定的學習計畫一步步看書 聽...

2013第45周五準備考試

發現我漸漸陷入了為一些瑣事反覆思索的怪圈,想跳出去又總是被各種慣性束縛。其實很多問題不值得思考,比如先有雞先有蛋?你在這個問題上思考浪費再多的時間又能取得些什麼呢?管理好自己的焦點範圍很重要,多想象自己的能想到的各種邊境然後去突破,比如我想改變現在後達到的最好的狀態是什麼?周邊環境的關鍵的人事物。這...