*(file io): input:wheat.in output:wheat.out
時間限制: 1000 ms 空間限制: 262144 kb 具體限制
題目描述
s ma
rt
smart
smart和sar
ah
sarah
sara
h在每年的聖誕節都要種植小麥。眾所周知,小麥的生長速度不同,經過一段時間後,種植的小麥會參差不齊。他們決定玩以下的遊戲來解決這個問題:
1、當輪到sma
rt
smart
smar
t的時候,他會選擇最短的那個小麥,然後延長高度到第二短的小麥的高度。
2、當輪到sar
ah
sarah
sara
h的時候,他會選擇最長的那個小麥,然後剪短高度到第二長的小麥的高度。
遊戲如果能繼續的話,小麥中必須有三種不同的高度,如果有人不能再繼續遊戲,那麼他就失敗了。
給定所有小麥的高度,假設從sma
rt
smart
smar
t開始遊戲,寫乙個程式決出遊戲中誰是勝者,並輸出遊戲結束時最高的和最低的小麥的高度。
輸入
第一行輸入乙個整數n
nn,表示小麥的數量。
第二行輸入n
nn個用個空格隔開的整數,表示每個小麥的高度,小麥高度都不超過100000
100000
100000
。輸出
輸出的第一行為"sm
art"
"smart"
"smart
"表示sma
rt
smart
smar
t贏得遊戲,為"sa
rah"
"sarah"
"sarah
"表示sar
ah
sarah
sara
h贏得遊戲。
輸出第二行的兩個數分別表示遊戲結束時最低和最高的小麥長度。
樣例輸入
樣例輸入1
33 4 3
樣例輸入2
53 1 2 4 1
樣例輸入3
72 1 3 3 5 4 1
樣例輸出
樣例輸入1
sarah
3 4樣例輸入2
smart
2 3樣例輸入3
sarah
2 3資料範圍限制
50
5050
%的資料:1≤n
≤500
1≤n≤500
1≤n≤50
0;80
8080
%的資料:1≤n
≤3000
1≤n≤3000
1≤n≤30
00;100
10010
0%的資料:1≤n
≤100000
1≤n≤100000
1≤n≤10
0000
。解題思路
首先,乙個桶(源**中的p
pp陣列)
然後先比較當前最左(源**中的h
hh)和最右(源**中的t
tt), 如果最左大於最右,則最左減最右,最右清零t−1
t-1t−
1,如果最右大於最左,則最右減最左,最左清零,h+1
h+1h+
1,否則就是最左等於最右,則最左與最右都清零,h+1
,t−1
h+1,t-1
h+1,t−
1。直到t −l
<=1
t-l<=1
t−l<=1
然後比較p[t
]p[t]
p[t]
和p [h
]p[h]
p[h]
,輸出。
**
#include.h>
int a[
100001
],p[
100001
],bsy[
100001];
int n,t=
0,h=
1,w=
0,x=0;
int main()
for(int i=
1;i<=
100000
;i++)if
(bsy[i]!=0
) int x=0;
if(t-h+
1<3)
printf
("sarah\n");
else
if(p[h]
<=p[t]
)printf
("sarah\n");
else
printf
("smart\n");
}printf
("%d %d"
,a[h]
,a[t]);
return0;
}
2019紀中培訓
2019.01.22 noip普及組 模擬賽c組 在紀中的第一套題 為什麼是xp?我好水四道題三道dp 2019.01.23 noip普及組 模擬賽c組 換到了科學樓,有windows 7真好 有點強大 比賽結束之後,沒有乙個人把第三道題a了 聽到巨佬講規律,心裡懵逼的一批 晚上還有北大老師講課 2...
2016 6 11紀中模擬賽
題目 t1 赤裸裸的水題,直接高精度就行了。t2 這題本應放到3或4題上,可老師應該是故意放到這裡的吧 考試時我先想到的是貪心,隨後我又證明了我那種貪心是不可取的,可是我想都沒想下去,就認為這道題是dfs 記憶化了。所以,我就開始打記憶化了,可是題目的條件是100000 100000的,但如果開這麼...
刪除 紀中1381 暴力
alice上化學課時又分心了,他首先畫了乙個3行n列的 然後把數字1到n填入 的第一行,保證每個數隻出現一次,另外兩行他也填入數字1到n,但不限制每個數字的出現次數。alice現在想刪除若干列使得每一行排完序後完全一樣,程式設計計算最少需要刪除多少列。第一行包含乙個整數n 1 n 100000 表示...