记录编号 |
447623 |
评测结果 |
AAAAAAAAAAAAA |
题目名称 |
毕业考试 |
最终得分 |
100 |
用户昵称 |
JustWB |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.123 s |
提交时间 |
2017-09-10 22:02:17 |
内存使用 |
1.84 MiB |
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<algorithm>
const int maxn=1e5+5;
using namespace std;
inline long long get();
struct score
{
long long now,del;
score(){now=del=0;}
bool operator < (const score &A)const
{
return del<A.del;
}
}s[maxn];
long long n,r,v;
long long all,ans;
int main()
{
freopen("exam.in","r",stdin);
freopen("exam.out","w",stdout);
n=get(),r=get(),v=get();
for(int i=1;i<=n;i++)
{
s[i].now=get();
s[i].del=get();
all+=s[i].now;
}
sort(s+1,s+n+1);
for(int i=1;i<=n;i++)
{
if(all<n*v&&n*v-all>r-s[i].now)ans+=s[i].del*(r-s[i].now),all+=(r-s[i].now);
else if(all<n*v&&n*v-all<=r-s[i].now)
{
ans+=s[i].del*(n*v-all);
printf("%lld",ans);
return 0;
}
}
printf("%lld",ans);
return 0;
}
inline long long get()
{
int t=0;char c=getchar(),j=1;
while(!isdigit(c))
{
if(c=='-')j=-1;
c=getchar();
}
while(isdigit(c))
{
t=(t<<3)+(t<<1)+c-'0';
c=getchar();
}
return j*t;
}