Cod sursa(job #1834016)

Utilizator Coroian_DavidCoroian David Coroian_David Data 23 decembrie 2016 17:48:21
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <cstdio>

#include <algorithm>

using namespace std;

FILE *f, *g;

struct oras
{
    int x, d;
};

oras v[1000001];

int mxx, px, mx;

int m, n;

void readFile()
{
    f = fopen("orase.in", "r");

    fscanf(f, "%d%d", &m, &n);

    int i;

    for(i = 1; i <= n; i ++)
        fscanf(f, "%d%d", &v[i].x, &v[i].d);

    fclose(f);
}

bool cmp(oras a, oras b)
{
    if(a.x < b.x)
        return true;

    if(a.x > b.x)
        return false;

    return (a.d < b.d);
}

void solve()
{
    sort(v + 1, v + n + 1, cmp);

    int i;

    mx = v[1].d - v[1].x;


    for(i = 2; i <= n; i ++)
    {
        if(v[i].x + v[i].d + mx > mxx)
            mxx = v[i].x + v[i].d + mx;

        if(v[i].d - v[i].x > mx)
        {
            mx = v[i].d - v[i].x;
        }
    }

}

void printFile()
{
    g = fopen("orase.out", "w");

    fprintf(g, "%d\n", mxx);

    fclose(g);
}

int main()
{
    readFile();

    solve();

    printFile();

    return 0;
}