违规紫衫
记录详情(这是团队内部比赛,有可能看不到,A了1~10)
Code:
//抄袭可耻!!!
#include<bits/stdc++.h>
using namespace std;
int a[100010];
int u[100010];
int f[100010];
int n,d;
int money=0;
int k=1;
int pre=0;
int p=0;
int t=0;
int main()
{
cin>>n>>d;//n=公路上站点的数量,d=车每升油可以前进的距离
//f[0]=0;
for(int i=2;i<=n;i++)//2到n是因为输入条件中有些从u[1]输入到u[n-1]
{
cin>>u[i];//表示站点间的距离
f[i]=f[i-1]+u[i];//表示到当前站点的总距离
}
for(int i=1;i<=n;i++)cin>>a[i];//表示在不同站点加油的价格
for(int i=2;i<=n;i++)//2到n是因为输入导致这个循环中也要从u[1]到u[n-1]
{
if(a[i]<a[k]||i==n)
{
p=f[i]-f[k];
if(p<=pre)
{
pre=pre-p;
k=i;
}
else
{
p=p-pre;
if(p%d==0)
{
t=p/d;
money=money+t*a[k];
}
else
{
t=p/d+1;
money=money+t*a[k];
pre=t*d-p;
}
k=i;
}
}
}
cout<<money;
return 0;
}
/*
5 4
10 10 10 10
9 8 9 6 5
*/
//习惯打样例,是过了的
求求各位了,本蒟蒻在机房的比赛时间一直在改这道题