1431 快樂排隊
codeforces
基準時間限制:1 秒 空間限制:131072 kb 分值: 80
難度:5級演算法題
有一群人在排隊,如果某個人想排到前面去,可以花一元錢給直接站在他前面的人,然後和這個人交換位置。如果自己沒有錢了,就不能和前面的人交換。
但是呢,佇列裡面的人覺得排他前面的所有人一定要比較有錢的,至少不能比他自己拿的少。否則裡面就會有人生氣。站在隊頭的人一定是高興的。
現在給出乙個佇列的初始狀態,問能不能調整佇列,使得裡面的人都高興。
樣例解釋:樣例1中,隊尾的人可以和前面的人交換,變成9 10。
input
單組測試資料。output第一行包含乙個整數n (1 ≤ n ≤ 200,000),表示佇列中的人數。
第二行包含n個空格分開的整數 ai (0 ≤ ai ≤ 10^9),ai表示佇列中第i個人手上拿的錢。編號從隊尾開始。
input示例
2output示例11 8
29 8
sad對於乙個i 如果 向左交換 會收到一塊錢 位置減1
向右交換 會減少一塊錢 位置加 1 所以 錢數+位置編號無論怎麼換都不會變
1 #include 2 #include 3 #include 4**5const
int maxn=1000010;6
7int
t,n,ans;89
intzs[maxn];
1011 inline void read(int&x)
1718
inthh()
21 std::sort(zs+1,zs+1+n);
22int t=std::unique(zs+1,zs+1+n)-zs-1;23
if(t==n) printf("");
24else printf("
sad\n");
25}26return0;
27}2829
int sb=hh();
30int main(int argc,char**argv)
51nod排隊接水
n個人一起排隊接水,第i個人需要b i 的時間來接水。1 n 1000 0 b i 1000 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決定所有人接水的順序,並希望最小化所有人等待時間的總和。input 第一行乙個整數n 接下來n行,每行...
51Nod 排隊接水 貪心
n n 個人一起排隊接水,第 i role presentation i i個人需要b i b i 的時間來接水。1 n 1000 1 n 1000 0 b i 1000 0 b i 1000 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決...
貪心演算法 51nod排隊接水
n個人一起排隊接水,第i個人需要b i 的時間來接水。1 n 1000 0 b i 1000 同時只能有乙個人接水,正在接水的人和沒有接水的人都需要等待。完成接水的人會立刻消失,不會繼續等待。你可以決定所有人接水的順序,並希望最小化所有人等待時間的總和。收起第一行乙個整數n 接下來n行,每行乙個整數...