Pagini recente » Cod sursa (job #2399240) | Cod sursa (job #2922922) | Cod sursa (job #3262620) | Cod sursa (job #3250597) | Cod sursa (job #2941559)
#include <bits/stdc++.h>
using namespace std;
ifstream in ("carnati.in");
ofstream out("carnati.out");
#define maxN 2000
struct ura{
int t,p;
}v[maxN+1];
bool comp(ura a, ura b){
if(a.t==b.t){
if(a.p<b.p){
return true;
}
return false;
}
if(a.t<b.t){
return true;
}
return false;
}
int main(){
int n,c;
in>>n>>c;
for(int i=1;i<=n;i++){
in>>v[i].t>>v[i].p;
}
sort(v+1,v+n+1,comp);
int res=-1;
for(int i=1;i<=n;i++){
int s=0;
int money=0;
for(int j=1;j<=n;j++){
if(j>=1){
s-=(v[j].t-v[j-1].t)*c;
}
if(s<0){
s=0;
}
if(v[j].p>=v[i].p){
s+=v[i].p;
}
if(money<s){
money=s;
}
}
if(res<money-c){
res=money-c;
}
}
out<<res;
}