恰逢 h國國慶,國王邀請n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左、右手上面分別寫下乙個整數,國王自己也在左、右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是:排在該大臣前面的所有人的左手上的數的乘積除以他自己右手上的數,然後向下取整得到的結果。
國王不希望某乙個大臣獲得特別多的獎賞,所以他想請你幫他重新安排一下隊伍的順序,使得獲得獎賞最多的大臣,所獲獎賞盡可能的少。注意,國王的位置始終在隊伍的最前面。
第一行包含乙個整數n,表示大臣的人數。
第二行包含兩個整數 a和 b,之間用乙個空格隔開,分別表示國王左手和右手上的整數。
接下來 n行,每行包含兩個整數a 和 b,之間用乙個空格隔開,分別表示每個大臣左手和右手上的整數。
乙個整數,表示重新排列後的隊伍中獲獎賞最多的大臣所獲得的金幣數。
輸入樣例#1:
31 1
2 3
7 4
4 6
輸出樣例#1:
2
【輸入輸出樣例說明】
按1、2、3 這樣排列隊伍,獲得獎賞最多的大臣所獲得金幣數為 2;
按 1、3、2 這樣排列隊伍,獲得獎賞最多的大臣所獲得金幣數為2;
按 2、1、3這樣排列隊伍,獲得獎賞最多的大臣所獲得金幣數為 2;
按2、3、1這樣排列隊伍,獲得獎賞最多的大臣所獲得金幣數為9;
按 3、1、2這樣排列隊伍,獲得獎賞最多的大臣所獲得金幣數為 2;
按3、2、1 這樣排列隊伍,獲得獎賞最多的大臣所獲得金幣數為 9。
因此,獎賞最多的大臣最少獲得 2個金幣,答案輸出 2。
【資料範圍】
對於 20%的資料,有 1≤ n≤ 10,0 < a,b < 8
對於 40%的資料,有1≤ n≤20,0 < a,b < 8
對於 60%的資料,有 1≤ n≤100;
對於 60%的資料,保證答案不超過 10^9;
對於 100%的資料,有 1 ≤ n ≤1,000,0 < a,b < 10000。
noip 2012 提高組 第一天 第二題
解題思路:
經過一番推論後,我們可以得出讓右手和左手乘積小的在前面,答案最優,但是要注意,本題資料很大,要用高精度。
ac**:
1 #include2 #include3 #include4using
namespace
std;
5int n,lens = 1,lenm = 1,lena = 1;6
int ans[10010],maxn[10010] = ,sum[10010] = ;
7struct kkk e[1001
];10
void gjc(long
long k)
19while(num != 0
) 24}25
void he(long
long k) 36}
37while(ans[lena] == 0
) 42}43
bool cmp(kkk a,kkk b)
46void max()
52else
if(lena ==lenm) 60}
61}62int
main()
73for(int i = lenm;i >= 1; i--)
74 printf("
%d",maxn[i]);//
輸出答案
75return0;
76 }
//noip提高 2012 day1 t2
洛谷 P1080 國王遊戲
原題 題目描述 恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是 排在該大臣前...
洛谷P1080 國王遊戲
洛谷p1080 國王遊戲 題目描述 恰逢 h 國國慶,國王邀請 n 位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數...
洛谷P1080 國王遊戲
恰逢 h國國慶,國王邀請n位大臣來玩乙個有獎遊戲。首先,他讓每個大臣在左 右手上面分別寫下乙個整數,國王自己也在左 右手上各寫乙個整數。然後,讓這 n 位大臣排成一排,國王站在隊伍的最前面。排好隊後,所有的大臣都會獲得國王獎賞的若干金幣,每位大臣獲得的金幣數分別是 排在該大臣前面的所有人的左手上的數...