Mai intai trebuie sa te autentifici.
Cod sursa(job #2885374)
Utilizator | Data | 5 aprilie 2022 21:53:57 | |
---|---|---|---|
Problema | Branza | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.62 kb |
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
const int NMAX=1e5+3;
ifstream in("branza.in");
ofstream out("branza.out");
deque<int>dq;
pair<int,int> v[NMAX];
int main() {
int n,k,t,ans=0;
in>>n>>k>>t;
for(int i=0;i<n;i++)
in>>v[i].first>>v[i].second;
for(int i=0;i<n;i++){
while(!dq.empty() && dq.back()<i-t)
dq.pop_back();
while(!dq.empty() && v[i].first<v[dq.front()].first+(i-dq.front())*k)
dq.pop_front();
dq.push_front(i);
ans+=(v[dq.back()].first+(i-dq.back())*k)*v[i].second;
}
out<<ans;
return 0;
}