Cod sursa(job #941742)

Utilizator dvh312dvh312 dvh312 Data 19 aprilie 2013 16:57:33
Problema Euro Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#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;
}