Cod sursa(job #2775871)

Utilizator RobertAcAcatrinei Robert-Marian RobertAc Data 17 septembrie 2021 18:35:40
Problema Branza Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <bits/stdc++.h>
#define int uint64_t
using namespace std;
string prob="branza";
ifstream in(prob+".in");
ofstream out(prob+".out");
int c[100005];
int n,s,t,tot=0,ind=0;
int getmin(int start){
    int res=INT_MAX;
    int it=0;
    for(int i=start-1,j=1;j<=t;j++,i--){
        if(res>c[i]+(start-i)*s){
            res=c[i]+(start-i)*s;
            it=j;
        }
    }
    ind=it;
    return res;
}
int32_t main(){
    in>>n>>s>>t;
    int minn=INT_MAX-s;
    int p;
    for(int i=0;i<n;i++){
        in>>c[i]>>p;
        if(ind>t){
            minn=getmin(i);
        }
        if(minn+s>=c[i]){
            minn=c[i];
            ind=0;
        }else minn+=s;
        ind++;
        tot+=minn*p;
    }
    out<<tot;
}