50pts求调
查看原帖
50pts求调
598600
Cube_Dirt楼主2024/10/18 20:28
#include<bits/stdc++.h>
#define N 100005
#define mod 100000007
#define f(i,a,b) for(long long i=a;i<=b;i++)
#define _f(i,a,b) for(long long i=a;i>=b;i--)
#define el printf("\n")
#define spc printf(" ")
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef double D;
inline int ri(){char ch=getchar(); int x=0,f=1;while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();if(ch=='-'){f=-1;ch=getchar();}while('0'<=ch&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}inline void wi(int x){if(x<0)putchar('-'),x=-x;if(x>9)wi(x/10);putchar(x%10+'0');return;}
//inline ll rl(){char ch=getchar(); ll x=0,f=1;while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();if(ch=='-'){f=-1;ch=getchar();}while('0'<=ch&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}inline void wl(ll x){if(x<0)putchar('-'),x=-x;if(x>9)wl(x/10);putchar(x%10+'0');return;}
//inline __int128 ri128(){char ch=getchar();__int128 x=0,f=1;while((ch>'9'||ch<'0')&&ch!='-')ch=getchar();if(ch=='-'){f=-1;ch=getchar();}while('0'<=ch&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}inline void wi128(__int128 x){if(x<0)putchar('-'),x=-x;if(x>9)wi128(x/10);putchar(x%10+'0');return;}
ll n,d,a[N],v[N],minn[N],sum=0;
int main(){
	cin>>n>>d;
	f(i,2,n)
	{
		v[i]=ri();
		v[i]+=v[i-1];
	}
	f(i,1,n)a[i]=ri();
	minn[1]=a[1];
	f(i,2,n)minn[i]=min(a[i],minn[i-1]);
	ll now=0;
	f(i,2,n)
	{
		if(now>v[i])continue;
		int k=ceil((v[i]-now)*1.0/d*1.0);
		sum+=k*minn[i-1];
		now+=k*d;
	}
	cout<<sum;
	return 0;
}

ac 1-10

wa 11-20

无tle,mle,re

2024/10/18 20:28
加载中...