超市有n種不同的商品(從1開始編號),第i種商品有乙個基本花費b_ibi
。小白要來買東西,如果小白買了k件商品,編號分別為x_1x1
、x_2x2
、..、x_kxk
,那麼物品x_jxj
的花費為b_bx
j+x_j*kxj
∗k (1<=j<=k)。也就是說,物品的花費等於它的基本花費加上它的編號乘上k。
小白想要在花費不超過sp的情況下買盡量多的物品。注意,一種物品最多買一件。
輸入第一行兩個整數,n和sp(1<=n<=10^510
5,1<=sp<=10^910
9),含義如上。
第二行n個整數b_1b1
、b_2b2
,,,b_nbn
(1<=b_ibi
<=10^510
5).輸出 將小白最多買的物品數k和買k件物品的最少花費輸出到一行
樣例輸入
3 112 3 5
樣例輸出
2 11
#include#include#includeusing namespace std;
#define ll long long
ll n,sp,sum;
const int maxn=1e5+5;
ll b[maxn],c[maxn];
bool solve(ll k)
sort(c+1,c+n+1);
for(ll i=1;i<=k;i++)
return true;
}int main()
else
}printf("%lld %lld\n",k,ans);
return 0;}/*
3 11
2 3 5
*/
超市有n種不同的商品(從1開始編號),第i種商品有乙個基本花費b_ibi
。小白要來買東西,如果小白買了k件商品,編號分別為x_1x1
、x_2x2
、..、x_kxk
,那麼物品x_jxj
的花費為b_bx
j+x_j*kxj
∗k (1<=j<=k)。也就是說,物品的花費等於它的基本花費加上它的編號乘上k。
小白想要在花費不超過sp的情況下買盡量多的物品。注意,一種物品最多買一件。
輸入第一行兩個整數,n和sp(1<=n<=10^510
5,1<=sp<=10^910
9),含義如上。
第二行n個整數b_1b1
、b_2b2
,,,b_nbn
(1<=b_ibi
<=10^510
5).輸出 將小白最多買的物品數k和買k件物品的最少花費輸出到一行
樣例輸入
3 112 3 5
樣例輸出
2 11
計蒜客 1562 二分查詢
蒜頭君手上有個長度為 nn 的陣列 aa。由於陣列實在太大了,所以蒜頭君也不知道陣列裡面有什麼數字,所以蒜頭君會經常詢問在陣列 aa 中,比 xx 大的最小值是多大?但是這次蒜頭君要求這個數字必須大於 xx,不能等於 xx。輸入格式 第一行輸入兩個整數 nn 和 mm,分別表示陣列的長度和查詢的次數...
計蒜客 尋找插入位置 (二分查詢)
給定乙個已經公升序排好序的陣列,以及乙個數 target,如果 target在陣列中,返回它在陣列中的位置。否則,返回 target插入陣列後它應該在的位置。假設陣列中沒有重複的數。以下是簡單的示例 1,3,5,6 5 2 1,3,5,6 2 1 1,3,5,6 7 4 1,3,5,6 0 0 輸入...
D 二分查詢(二) 計蒜客 T1561
題目描述 蒜頭君手上有個長度為 n 的陣列 a。由於陣列實在太大了,所以蒜頭君也不知道陣列裡面有什麼數字,所以蒜頭君會經常詢問在陣列 a 中,大於等於 x 的最小值是多大?輸入格式 第一行輸入兩個整數 n 和 m,分別表示陣列的長度和查詢的次數。接下來一行有 n 個整數 ai 接下來 m 行,每行有...