三個法師康的工人每天早上6點到工廠開始到三條產品生產線上組裝桔子手機。第乙個工人在200時刻開始(從6點開始計時,以秒作為單位)在生產線上開始生產,一直到1000時刻。第二個工人,在700時刻開始,在1100時刻結束。第三個工人從1500時刻工作到2100時刻。期間最長至少有乙個工人在生產線上工作的連續時間為900秒(從200時刻到1100時刻),而最長的無人生產的連續時間(從生產開始到生產結束)為400時刻(1100時刻到1500時刻)。
你的任務是用乙個程式衡量n個工人在n條產品線上的工作時間列表(1≤n≤5000,以秒為單位)。
·最長的至少有乙個工人在工作的時間段
·最長的無人工作的時間段(從有人工作開始計)
輸入第1行為乙個整數n,第2-n+1行每行包括兩個均小於1000000的非負整數資料,表示其中乙個工人的生產開始時間與結束時間。
輸出為一行,用空格分隔開兩個我們所求的數。
3
200 1000
700 1100
1500 2100
900 400
jesus!我手寫了從計蒜客ac了,然後從ojwa 75%這個?伺服器怎麼回事???
wa75%
#include#include#include#includeusing namespace std;
int main()
if(p[i].second>end)
end=p[i].second;
}printf("%lld %lld",contime,bretime);
return 0;
}
ac**
#include#include#include#includeusing namespace std;
int main()
{ int n;
cin>>n;
pairp[5500];
for(int i=0;i不知道參考的誰的了,更加簡潔了
longlongcontime=p[0].second-p[0].first;
longlongbretime=0;
for(inti=1,j=0;iif(p[i].first <=p[j].second)//只有p[i].first小於p[j].second的時候才進來
p[j].second = max(p[i].second,p[j].second);//找更長的second
contime= max(contime,p[j].second-p[j].first);//contime=更大的second-第乙個下標的first
else
bretime=max(bretime,p[i].first-p[j].second);
j=i;//j記錄著此段第乙個的下標
4 3 法師康工人 貪心
題目 三個法師康的工人每天早上6點到工廠開始到三條產品生產線上組裝桔子手機。第乙個工人在200時刻開始 從6點開始計時,以秒作為單位 在生產線上開始生產,一直到1000時刻。第二個工人,在700時刻開始,在1100時刻結束。第三個工人從1500時刻工作到2100時刻。期間最長至少有乙個工人在生產線上...
關於全排列問題的總結(康托展開)
今天做usaco上一道題的時候用到了這個東西,當時覺得麻煩直接用map寫了,然後仔細研究了一下,康托展開與其逆展開,個人覺得會在節省空間和表示狀態上有比較大的幫助。先來正展開吧,即給定排列序列,求是第幾個排列,看序列中的第k位,假設序列長度為n,那麼,k位之後的各位數全排列有 n k 種,然後看k之...
js模擬ctrl c的問題
1.這種方式只可以對顯示的textbox和textarea使用,對於display none和visibility hidden 以及其他標籤無效 var message document.getelementbyid compcode240 message.select 選擇物件 document...