Pagini recente » Cod sursa (job #2419721) | Cod sursa (job #1357151) | Cod sursa (job #39226) | Cod sursa (job #2977036) | Cod sursa (job #179884)
Cod sursa(job #179884)
#include<stdio.h>
struct nod{int T,P;} A[2010];
int B[1510];
int main(){
FILE *fin = fopen("carnati.in","r"),
*fout = fopen("carnati.out","w");
int N,C;
fscanf(fin,"%d%d",&N,&C);
for(int i=1;i<=N;i++)
fscanf(fin,"%d%d",&A[i].T,&A[i].P);
//fixare pret
int sol = 0;
for(int k=1;k<=N;k++){
int PRET = A[k].P;
for(int i=0;i<=1500;i++) B[i] = -C;
for(int i=1;i<=N;i++)
if(A[i].P >= PRET)
B[A[i].T] += PRET;
//suma de subsecventa minima intre 2 - 2*N
for(int i=1;i<=1500;i++)
B[i] += B[i-1];
int MIN = 0;
for(int i=1;i<=1500;i++){
if(B[i] - MIN > sol)
sol = B[i] - MIN;
if(B[i] < MIN)
MIN = B[i];
}
}
fprintf(fout,"%d\n",sol);
fclose(fin);
fclose(fout);
return 0;
}