Sagheer and Nubian Market

2024-01-13 19:48
文章标签 market sagheer nubian

本文主要是介绍Sagheer and Nubian Market,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

如果能想到二分求解,这道题目基本就能过了,我说一个坑了我很久的细节吧

long long res[maxn],an[maxn];
int mid,i;
res[i]=an[i]+mid*i;
res[i]=an[i]+(long long) (mid*i);
res[i]=an[i]+(long long)mid*i;
这三种写法看起来很相似,但是当mid*i>int的最大值时,会有不同结果,第一种写法对于mid*i(它们乘积也是一个int类型的)超过int会得到一个算是随机的数字导致答案错误,第二种写法是在mid*i超出int之后才改变的类型,没什么用,第三种是正解,强制类型转换mid之后,因为*左右类型不同所以向位数更多的类型转换(应该是这样)

On his trip to Luxor and Aswan, Sagheer went to a Nubian market to buy some souvenirs for his friends and relatives. The market has some strange rules. It contains n different items numbered from 1 to n. The i-th item has base cost ai Egyptian pounds. If Sagheer buys kitems with indices x1, x2, ..., xk, then the cost of item xj is axj + xj·k for 1 ≤ j ≤ k. In other words, the cost of an item is equal to its base cost in addition to its index multiplied by the factor k.

Sagheer wants to buy as many souvenirs as possible without paying more than S Egyptian pounds. Note that he cannot buy a souvenir more than once. If there are many ways to maximize the number of souvenirs, he will choose the way that will minimize the total cost. Can you help him with this task?

Input

The first line contains two integers n and S (1 ≤ n ≤ 105 and 1 ≤ S ≤ 109) — the number of souvenirs in the market and Sagheer's budget.

The second line contains n space-separated integers a1, a2, ..., an (1 ≤ ai ≤ 105) — the base costs of the souvenirs.

Output

On a single line, print two integers kT — the maximum number of souvenirs Sagheer can buy and the minimum total cost to buy these ksouvenirs.

Example
Input
3 11
2 3 5
Output
2 11
Input
4 100
1 2 5 6
Output
4 54
Input
1 7
7
Output
0 0
Note

In the first example, he cannot take the three items because they will cost him [5, 9, 14] with total cost 28. If he decides to take only two items, then the costs will be [4, 7, 11]. So he can afford the first and second items.

In the second example, he can buy all items as they will cost him [5, 10, 17, 22].

In the third example, there is only one souvenir in the market which will cost him 8 pounds, so he cannot buy it.


#include<stdio.h>
#include<string.h>
#include<algorithm>
#define maxn 100005
using namespace std;
long long an[maxn],res[maxn];
int main()
{int n,s,l,r,ans=0;scanf("%d%d",&n,&s);for(int i=1;i<=n;i++){scanf("%lld",&an[i]);}l=1,r=n;while(r>=l){int mid=(l+r)>>1;for(int i=1;i<=n;i++){res[i]=an[i]+(long long)mid*i;}sort(res+1,res+n+1);long long sum=0;for(int i=1;i<=mid;i++){sum+=res[i];} if(sum<=s){ans=mid;l=mid+1;}elser=mid-1;}if(ans){for(int i=1;i<=n;i++){res[i]=an[i]+(long long)ans*i;}sort(res+1,res+n+1);long long sum=0;for(int i=1;i<=ans;i++){sum+=res[i];} printf("%d %lld",ans,sum);}elseprintf("0 0");return 0;
} 



这篇关于Sagheer and Nubian Market的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/602589

相关文章

codeforces 364B Free Market dp

题意:有n个品种的物品,每个物品的价格为c[ i ],每次你可以从你拥有的物品中挑取部分去商店去兑换。兑换有如下限制: (1)你拿去兑换的物品(不妨设拿去兑换的物品集合为s),都要换成集合s所没有的。比如(a,b)--->(v,a)就是不合法的 (2)你拿去兑换的物品集s1里的价值和cost1与你兑换回来的物品集s2里的价值和cost2需要满足:cost1+d>=cost2 每天你只能去兑换

时序数据库是Niche Market吗?

引言 DB-Engines的流行程度排行从其评估标准[4]可以看出完全不能够做为市场规模的评估标准。甚至于在知道市场规模后可以用这个排行作为一个避雷手册。毕竟现存市场小,可预见增长规模小,竞争大,创新不足,那只能卷价格,卷人效,自然是一个恶性循环。 市场规模 时序数据库目前来看除了工业互联网iot设备的数据存储,传统互联网中的metric存储仍旧是不一个不小的市场。 根据IDC[6

WordPress Wholesale Market 插件 任意文件读取漏洞复现

0x01 产品简介 WordPress plugin Wholesale Market 是一个woocommerce扩展插件,使您的商店能够创建批发用户,并通过设置产品的批发价格。 0x02 漏洞概述 WordPress plugin Wholesale Market 2.2.1之前版本存在路径遍历漏洞,该漏洞源于没有进行授权检查,也不会验证用户输入。攻击者利用该漏洞可以从服务器下载任意文件

geek_Ask How-To Geek:在仿真中还原XBMC FTP,重命名电视节目和Android Market

geek Once a week we dig into our reader mailbag and answer your burning questions. Today we’re taking a peek at how to enable the missing FTP functionality in XBMC, rename your downloaded TV sh

【题解】 Stock Market 股票市场

题目描述 尽管奶牛们天生谨慎,她们仍然在住房抵押信贷市场中受到打击,现在她们开始着手于股市。 Bessie很有先见之明,她不仅知道今天 S ( 2 < = S < = 50 ) S (2 <= S <= 50) S(2<=S<=50) 只股票的价格,还知道接下来一共 D ( 2 ≤ D ≤ 10 ) D (2 \leq D \leq 10) D(2≤D≤10) 天的(包括今天)。 给定一个

二分查找-CodeForces 812C-Sagheer and Nubian Market

二分查找-CodeForces 812C-Sagheer and Nubian Market 题目链接:C. Sagheer and Nubian Market 思路: 题目大意是有n件纪念品,一共有S元,如果买k件,那第i件纪念品的时间价格truePrice=Price+k*i ,问在S内,最多能买多少件纪念品,如果有多种情况,选总花费最少的。 数据:n and S (1 ≤

CodeForces 812A-Sagheer and Crossroads

CodeForces 812A-Sagheer and Crossroads 题目链接:A. Sagheer and Crossroads 思路: 题目大意是有一个交叉路口,每个路口有三个方向(l,s,r)左,中,以及通过该路口的人行道p,如果交叉路口有车行驶方向能朝向某一人行道,有可能发送事故,1表示绿灯可行,0表示红灯不可行,给定路况,可能发生事故输出YES,否则NO

Android调用Market搜索软件

在android开发项目中,我们常常需要让用户去市场评价支持我们的软件,实际上就是调用market以包名搜索软件,一般做法代码如下: Uri uri = Uri.parse("market://search?q=pname:"+pgname); Intent it = new Intent(Intent.ACTION_VIEW, uri); sta

Android Market 链接的生成与分享

通过Java包名直接定位到你的App http://market.android.com/details?id=<java包名>或者market://details?id=<java包名> 范例:market://details?id=com.skyd.luckywheel 这将直接在菜市场中显示你的App详细介绍页。   通过Java包名搜索App http://marke

GJM : 发布APK 到 Google Play(Android Market)官方市场

原文网址:http://www.chinaapp.org/game/5594.html 作为一个专业的App开发者网站,竟然没有一篇讲述如何将Android App发布到Google Play的教程,这不允许出现,现在我们借力开发者的贡献将本文分享给更多的Android开发者。 相关教程推荐:苹果开发者如何将应用发布到Apple应用程序商店教程 还在苦恼于如何发布应用到Android市场吗?请