Cod sursa(job #1223404)

Utilizator catalinrebegeaUNIBUC-Claudia Catarig catalinrebegea Data 28 august 2014 07:23:41
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <algorithm>
#define Mmax 1000005

using namespace std;

int m1[Mmax],m2[Mmax],dif[Mmax];

int main()
{
    int M,N,a,b,sol=0,maxim=0,i;
    freopen ("orase.in","r",stdin);
    freopen ("orase.out","w",stdout);
    scanf("%d%d", &M,&N);
    while(N--)
    {
        scanf("%d%d", &a,&b);
        if(b>m1[a])
        {
            m2[a]=m1[a]; m1[a]=b;
        }
        else
            if(b>m2[a])
                m2[a]=b;
    }
    for(i=1;i<=M;++i)
    {
        dif[i]=m1[i]-i;
        if(m1[i] && m2[i])
            sol=max(sol,m1[i]+m2[i]);
    }
    for(i=1;i<=M;++i)
        if(m1[i])
        {
            sol=max(sol,m1[i]+i+maxim);
            maxim=max(maxim,dif[i]);
        }
    printf("%d\n", sol);
    return 0;
}