Pagini recente » Cod sursa (job #781590) | Cod sursa (job #681443) | Cod sursa (job #382651) | Cod sursa (job #1696242) | Cod sursa (job #941742)
Cod sursa(job #941742)
#include <iostream>
#include <fstream>
//#define f1 "account.inp"
//#define f2 "account.out"
#define f1 "euro.in"
#define f2 "euro.out"
using namespace std;
int main(){
ifstream fi;fi.open(f1);
ofstream fo;fo.open(f2);
long a[35000];
long n,t;
fi>>n>>t;
for (int i=1;i<=n;i++) fi>>a[i];
long csmax[35000];
long tong[35000];
long f[35000];
int l;
tong[0]=0;
l=1;
csmax[1]=l;
tong[1]=a[1];
for (int i=2;i<=n;i++){
tong[i]=tong[i-1]+a[i];
if (tong[i]-tong[l-1]<a[i]) l=i;
csmax[i]=l;
}
long x,y;
f[1]=a[1]-t;
//fo<<f[1]<<endl;
for (int i=2;i<=n;i++){
x=(f[csmax[i]-1]+(tong[i]-tong[csmax[i]-1])*i-t);
y=((f[i-1]+t)/(i-1)+a[i])*i-t;
if (true){
f[i]=x;
}
//fo<<f[i]<<" "<<x<<" "<<y<<" "<<csmax[i]<<" "<<endl;
}
//fo<<endl;
fo<<f[n];
fi.close();
fo.close();
return 0;
}