Pagini recente » Cod sursa (job #2543803) | Cod sursa (job #60998) | Cod sursa (job #2700809) | Cod sursa (job #2317676) | Cod sursa (job #1866404)
#include<stdio.h>
using namespace std;
#define MAXN 2001
int pr[MAXN], t[MAXN], v[MAXN];
void myqsort( int begin, int end, int *v) {
int aux, b = begin, e = end,
pivot = v[(begin + end) / 2];
while ( b <= e ) {
while ( v[b] < pivot ) b++;
while ( v[e] > pivot ) e--;
if ( b <= e ) {
aux = pr[b]; pr[b] = pr[e]; pr[e] = aux;
aux = t[b]; t[b] = t[e]; t[e] = aux;
b++; e--;
}
}
if ( begin < e ) myqsort( begin, e ,v);
if ( b < end ) myqsort( b, end, v);
}
int main(){
FILE*fin=fopen("carnati.in", "r");
FILE*fout=fopen("carnati.out", "w");
int n, c, i, smax, t0, s, j, x;
fscanf(fin, "%d%d", &n, &c);
for(i=1; i<=n; i++)
fscanf(fin, "%d %d", &t[i], &pr[i]);
myqsort(1, n, t);
smax=0;
for(i=1; i<=n; i++){
s=-c;
for(j=1; j<=n; j++){
x=0;
if(pr[j]>=pr[i])
x=pr[i];
if(s-c*(t[j]-t[j-1]-1)>0)
s=s-c*(t[j]-t[j-1])+x;
else
s=x-c;
if(s>smax){
smax=s;
printf("%d\n", i);
}
}
}
fprintf(fout, "%d", smax);
return 0;
}