Cod sursa(job #2070499)

Utilizator Valentin0709Datcu George Valentin Valentin0709 Data 19 noiembrie 2017 17:10:33
Problema Heavy metal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>
#include<algorithm>
using namespace std;

FILE*f=fopen("heavymetal.in","r");
FILE*g=fopen("heavymetal.out","w");

int n;
long long optim[100005];

struct formatie {
    int t1,t2;
} a[100005];

int comp(formatie a,formatie b) {
    return a.t2<b.t2||(a.t2==b.t2&&a.t1>b.t1);
}

void citire() {
    int i;

    fscanf(f,"%lld",&n);
    for(i=1;i<=n;i++) fscanf(f,"%d%d",&a[i].t1,&a[i].t2);

}

void solve() {
    int i,j=1;

    sort(a+1,a+n+1,comp);
    for(i=1;i<=a[n].t2;i++) {
        optim[i]=optim[i-1];
        while(a[j].t2==i) {
            optim[i]=max(optim[i],optim[a[j].t1]+a[j].t2-a[j].t1);
            j++;
        }
    }
}

int main() {

    citire();
    solve();

    fprintf(g,"%lld",optim[a[n].t2]);

    fclose(f); fclose(g);

    return 0;
}