Pagini recente » Cod sursa (job #1543093) | Cod sursa (job #2036330) | Cod sursa (job #2805703) | Cod sursa (job #481081) | Cod sursa (job #2889314)
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int n;
int t;
int s;
long long ct;
struct saptamana{
int c;
int p;
int i;
};
deque<saptamana> b;
void branza()
{
fin>>n>>s>>t;
for(int i=0;i<n;i++)
{
saptamana ns;
ns.i = i;
fin>>ns.c>>ns.p;
while(!b.empty() && (b.back().c+(i-b.back().i)*s)>(ns.c))
b.pop_back();
b.push_back(ns);
if(i-b.front().i>=t)
b.pop_front();
ct += (b.front().c+(i-b.front().i)*s)*ns.p;
}
fout<<ct;
}
int main() {
branza();
return 0;
}