Pagini recente » Cod sursa (job #376565) | Cod sursa (job #662875) | Cod sursa (job #8242) | Cod sursa (job #2120786) | Cod sursa (job #850839)
Cod sursa(job #850839)
#include<iostream>
#include<fstream>
#include<cstdio>
#include<cstring>
#include<vector>
#include<queue>
#include<stack>
#include<bitset>
#include<algorithm>
#define infile "carnati.in"
#define outfile "carnati.out"
#define INF (1<<30)
#define nxt (*it)
#define nMax 2005
#define FOR(g)\
for(vector<int>::iterator it=g.begin(); it!=g.end(); ++it)
using namespace std;
int T[nMax], P[nMax];
int N, C;
int Sol = -INF;
void read(){
ifstream f(infile);
f >> N >> C;
for(int i=1; i<=N; ++i)
f >> T[i] >> P[i];
f.close();
}
void solve(){
for(int i=1; i<=N; ++i){
int x, p, s = 0;
for(int j=1; j<=N; ++j){
p = P[i] * (P[i] <= P[j]);
x = p - (T[j] - T[j-1]) * C;
if(s + x < p - C)
s = p - C;
else
s += x;
Sol = max(Sol, s);
}
}
}
void print(){
ofstream g(outfile);
g << Sol << '\n';
g.close();
}
int main(){
read();
solve();
print();
return 0;
}