Cod sursa(job #1003683)

Utilizator andi12Draghici Andrei andi12 Data 1 octombrie 2013 12:09:49
Problema Carnati Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>
#include<cstdio>
using namespace std;
FILE *in,*out;
int mat[2005][5];
int main()
{
    in=fopen("carnati.in","r");
    out=fopen("carnati.out","w");
    int n,p,t,i,j,x,mam=-999,pmam,c,dr,st,sum,ina,akm,b;
    fscanf(in,"%d%d",&n,&c);
    for(i=1;i<=n;i++)
        fscanf(in,"%d%d",&mat[i][1],&mat[i][2]);
        x=n;
    for(i=1;i<=n;i++)
    {
        mam=mat[1][1];
        pmam=1;
        for(j=1;j<=x;j++)
        {
            if(mat[j][1]>mam)
            {
                mam=mat[j][1];
                pmam=j;
            }
        }
        x--;
        mat[pmam][1]=mat[x+1][1];
        mat[x+1][1]=mam;
    }
    mam=mat[1][2]-c;
    pmam=mat[1][2]-c;
    p=mat[1][2];
    st=1;
    dr=1;
    for(i=1;i<=n;i++)
    {
        ina=0;
        p=mat[i][2];
        for(j=1;j<=n;j++)
        {
            if(mat[j][2]>=p)
                b=p;
            else
                b=0;
            akm=ina-c*(mat[j][1]-mat[j-1][1])+b;
            if(b-c>akm)
                akm=b-c;
            if(akm>mam)
                mam=akm;
            ina=akm;
        }
    }
    fprintf(out,"%d",mam);
    return 0;
}