Pagini recente » Cod sursa (job #155729) | Cod sursa (job #721326) | Cod sursa (job #1436238) | Cod sursa (job #2400829) | Cod sursa (job #368532)
Cod sursa(job #368532)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("carnati.in");
ofstream out("carnati.out");
struct carnat{
int t;
int p;
};
carnat v[1<<11];
bool comp(const carnat &x,const carnat &y){
return x.t<y.t;
}
int profmax(int p,int c,int n){
int j,pc,pmaxp=0;
if(v[1].p>=p)
pc=p-c;
else
pc=0;
pmaxp=pc;
for(j=2;j<=n;j++){
pc=pc-c*(v[j].t-v[j-1].t-1);
if(pc<0)
pc=0;
if(p<=v[j].p){
pc=pc+p;
}
pc-=c;
if(pc>pmaxp){
pmaxp=pc;
}
}
return pmaxp;
}
int main(){
int n,c,i,p,pmax=-10000,ppmax;
in>>n>>c;
for(i=1;i<=n;i++){
in>>v[i].t;
in>>v[i].p;
}
sort(v+1,v+n+1,comp);
for(i=1;i<=n;i++){
p=v[i].p;
ppmax=profmax(v[i].p,c,n);
if(ppmax>pmax){
pmax=ppmax;
}
}
out<<pmax<<"\n";
return 0;
}