time limit per test  2 seconds
memory limit per test  256 megabytes
 

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 buysk items 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.

 
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 [, , ] with total cost . If he decides to take only two items, then the costs will be [, , ]. So he can afford the first and second items. In the second example, he can buy all items as they will cost him [, , , ]. In the third example, there is only one souvenir in the market which will cost him pounds, so he cannot buy it.

Note


题目大意:
     在一个商店里一共有n件商品,每一件都有一个基础价格,但是这个商店有一个奇怪的规定,
     每一件商品最后的价格为 基础价格+买的商品总件数*商品的坐标(即这是第几件商品)
     现给定 商品的件数和你所拥有的钱数, 问你最多能卖几件商品 花的总钱数是多少 解题思路:
     总体思路为:二分查找 先找出最多能买的商品的件数,然后在计算出总花费 AC代码:
 #include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll; int main ()
{
ll n,s,sum,x,y,l,r;
ll ans[],a[];
int i;
cin>>n>>s;
for (i = ; i <= n; i ++)
cin>>a[i]; l = ,r = n; // 左标签和右标签
x = y = ;
while (l <= r){
sum = ;
ll mid = (r+l)>>; // 二分枚举能购买的商品件数
for (i = ; i <= n; i ++)
ans[i] = a[i]+i*mid;
sort(ans+,ans++n);
for (i = ; i <= mid; i ++)
sum += ans[i];
if (sum <= s){
x = mid;
y = sum;
l = mid+;
}
else
r = mid-;
}
cout<<x<<" "<<y<<endl;
return ;
}
以下版本思路同上;
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std; int main ()
{
__int64 n,s;
__int64 ans[],a[];
int i;
while (~scanf("%I64d%I64d",&n,&s))
{
for (i = ; i <= n; i ++)
scanf("%I64d",&a[i]); int l = ,r = n;
__int64 sum,x=,y=;
while (l <= r){
sum = ;
long long mid = (l+r)>>;
for (i = ; i <= n; i ++)
ans[i] = a[i]+i*mid;
sort(ans+,ans++n);
for (i = ; i <= mid; i ++)
sum += ans[i];
if (sum > s)
r = mid-;
else
l = mid+;
}
for (i = ; i <= n; i ++)
ans[i] = a[i]+i*r;
sort(ans+,ans++n);
for (i = ; i <= r; i ++)
y += ans[i];
printf("%d %I64d\n",r,y);
}
return ;
}

 

Codeforces Round #417 C. Sagheer and Nubian Market的更多相关文章

  1. Codeforces Round #417 B. Sagheer, the Hausmeister

    B. Sagheer, the Hausmeister time limit per test  1 second memory limit per test  256 megabytes   Som ...

  2. AC日记——Sagheer and Nubian Market codeforces 812c

    C - Sagheer and Nubian Market 思路: 二分: 代码: #include <bits/stdc++.h> using namespace std; #defin ...

  3. Codeforces J. Sagheer and Nubian Market(二分枚举)

    题目描述: Sagheer and Nubian Market time limit per test 2 seconds memory limit per test 256 megabytes in ...

  4. CodeForce-812C Sagheer and Nubian Market(二分)

    Sagheer and Nubian Market CodeForces - 812C 题意:n个货物,每个货物基础价格是ai. 当你一共购买k个货物时,每个货物的价格为a[i]+k*i. 每个货物只 ...

  5. [Codeforces Round#417 Div.2]

    来自FallDream的博客,未经允许,请勿转载,谢谢. 有毒的一场div2 找了个1300的小号,结果B题题目看错没交  D题题目剧毒 E题差了10秒钟没交上去. 233 ------- A.Sag ...

  6. Codeforces812C Sagheer and Nubian Market 2017-06-02 20:39 153人阅读 评论(0) 收藏

    C. Sagheer and Nubian Market time limit per test 2 seconds memory limit per test 256 megabytes input ...

  7. Codeforces Round #417 (Div. 2)A B C E 模拟 枚举 二分 阶梯博弈

    A. Sagheer and Crossroads time limit per test 1 second memory limit per test 256 megabytes input sta ...

  8. Codeforces Round #417 (Div. 2) 花式被虐

    A. Sagheer and Crossroads time limit per test 1 second memory limit per test 256 megabytes input sta ...

  9. codeforces round 417 div2 补题 CF 812 A-E

    A Sagheer and Crossroads 水题略过(然而被Hack了 以后要更加谨慎) #include<bits/stdc++.h> using namespace std; i ...

随机推荐

  1. spark 广播变量

    Spark广播变量 使用广播变量来优化,广播变量的原理是: 在每一个Executor中保存一份全局变量,task在执行的时候需要使用和这一份变量就可以,极大的减少了Executor的内存开销. Exe ...

  2. Spring整合Hibernate_数据源Datasource_dbcp连接池

    1,  Spring指定 datasource DataSource接口,在javax.sql包,里边有一个getConnection()方法.提供了标准化的取得连接的方式.只要实现了这个接口.Sun ...

  3. 四大组件之BroadcastReceiver

    BroadcastReceiver,顾名思义就是“广播接收者”的意思,它是Android四大基本组件之一,这种组件本质上是一种全局的监听器,用于监听系统全局的广播消息.它可以接收来自系统和应用的的广播 ...

  4. linux mint 19 pyenv 安装 python 3.7.0 问题解决

    Python3: ImportError: No module named '_ctypes' 解决 sudo apt-get install libffi-dev WARNING: The Pyth ...

  5. unity 2018获取本地ip 问题,ipaddress

    Network.Player.ipAddress这个API在Unity2018被移除了 用如下代码 using System.Net; using System.Net.NetworkInformat ...

  6. WPF 使用依赖属性自定义控件

    使用依赖属性自定义控件,依赖属性必须定义在自定义控件中,不能定义在其他文件中 一.先实现一个类继承你要复写的类 using System; using System.Collections.Gener ...

  7. maven备忘

    maven常见命令 mvn clean mvn compile mvn package mvn clean compile package mvn -Djetty.port= jetty:run mv ...

  8. Go RabbitMQ(三)发布订阅模式

    RabbitMQ 在上一节中我们创建了工作队列,并且假设每一个任务都能够准确的到达对应的worker.在本节中我们将介绍如何将一个消息传递到多个消费者,这也就是所说的发布订阅模式 为了验证该模式我们使 ...

  9. jmeter(4)——简单测试流程

    今天通过一个简单的例子梳理一下用jmeter进行测试的流程 1.确定被测网站:gogomall.com 2.制定测试指标:响应时间和错误率 3.设计测试场景 4.具体测试步骤 1>创建一个测试计 ...

  10. WCF中的AddressHeader作用

    客户端发送请求给服务端,服务端根据请求消息把消息转发给对应的终结点.这里面有个消息筛选机制,如果请求消息中带有地址报头相关信息,则会用地址报头匹配当前的所有终结点.所以默认情况下客户端和服务端的地址报 ...