Pagini recente » Cod sursa (job #2384785) | Cod sursa (job #2077122) | Cod sursa (job #1853067) | Cod sursa (job #2497013) | Cod sursa (job #179882)
Cod sursa(job #179882)
#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];
for(int i=1;i<=1500;i++){
for(int j=i-1;j>=0;j--)
if(B[i] - B[j] > sol)
sol = B[i] - B[j];
if(B[i] > sol)
sol = B[i];
}
}
fprintf(fout,"%d\n",sol);
fclose(fin);
fclose(fout);
return 0;
}