Cod sursa(job #956589)
| Utilizator | Data | 3 iunie 2013 14:56:23 | |
|---|---|---|---|
| Problema | Branza | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.5 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("branza.in");
ofstream out("branza.out");
struct br{
int c,p;
}v[100001];
int s,t,pret,n;
void calcul(int zi)
{
int i,min=10000000;
for(i=zi;i>0 && zi-i<t;i--)
if(v[i].c+(zi-i)*s<min)
min=v[i].c+(zi-i)*s;
pret+=min*v[zi].p;
}
int main()
{
int i;
in>>n>>s>>t;
for(i=1;i<=n;i++)
in>>v[i].c>>v[i].p;
for(i=n;i>0;i--)
calcul(i);
out<<pret;
}
