Cod sursa(job #1831163)

Utilizator VAIonescuIonescu Vlad-Andrei VAIonescu Data 17 decembrie 2016 15:55:26
Problema Orase Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <vector>
using namespace std;

struct oras{
    int p,d;
};
bool srt(oras a,oras b){
    return a.p<b.p;
}
vector<oras>orase;
int main()
{
    freopen("orase.in","r",stdin);
    freopen("orase.out","w",stdout);
    int n,c,sol=0,a=0,p,d;
    scanf("%d%d",&n,&c);
    oras* tmp;
    for (int i=0;i<c;i++){
        tmp=(oras*)malloc(sizeof(oras));
        scanf("%d%d",&p,&d);
        tmp->p=p;
        tmp->d=d;
        orase.push_back(*tmp);
    }
    sort(orase.begin(),orase.end(),srt);
    for (int i=0;i<c;i++){
        int t=a+orase[i].p+orase[i].d;
        sol=max(sol,t);
        t=orase[i].d-orase[i].p;
        a=max(a,t);
    }
    printf("%d",sol);
    return 0;
}