Cod sursa(job #2066920)
| Utilizator | Data | 15 noiembrie 2017 17:55:46 | |
|---|---|---|---|
| Problema | Branza | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <iostream>
#include <fstream>
using namespace std;
long long v[100005],d[100005];
int main()
{
ifstream in("branza.in");
ofstream out("branza.out");
int n,t,s,st=0,dr=-1,j;
long long p,suma=0;
in>>n>>s>>t;
for (int i=0;i<n;i++)
{
in>>v[i]>>p;
if ((st<=dr)&&(i-d[st]>t))
{
st++;
}
for (j=st;j<=dr;j++)
{
v[d[j]]+=s;
}
while ((st<=dr)&&(v[i]<=v[d[dr]]))
{
dr--;
}
d[++dr]=i;
suma=suma+p*v[d[st]];
cout<<suma<<endl;
}
out<<suma;
in.close();
out.close();
return 0;
}
