Cod sursa(job #3127425)
| Utilizator | Data | 7 mai 2023 15:24:39 | |
|---|---|---|---|
| Problema | Branza | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <fstream>
#include <iostream>
using namespace std;
ifstream f ("branza.in");
ofstream g ("branza.out");
int c[1000001],p[1000001];
int dr,cost;
int main()
{
int N,S,T;
f>>N>>S>>T;
++T;
int m,st=1;
for (int i=1;i<=N;++i)
{
f >>p[i]>>m;
if (st <=dr && c[st]==i-T)
st++;
while (st<=dr && p[i]<=p[c[dr]]+S*(i-c[dr]))
dr--;
c[++dr]=i;
cost+= m*(p[c[st]]+S*(i-c[st]));
}
g<<cost;
return 0;
}
