Cod sursa(job #2081106)

Utilizator PinkiePie1189Preoteasa Mircea-Costin PinkiePie1189 Data 3 decembrie 2017 23:24:19
Problema Heavy metal Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<stdio.h>
#include<algorithm>
#define MAXN 100000
struct interval
{
    int st,dr;
};
bool cmp(interval,interval);
FILE*fin,*fout;
interval v[MAXN+1];
int main()
{
    fin=fopen("heavymetal.in","r");
    fout=fopen("heavymetal.out","w");
    int N;
    fscanf(fin,"%d",&N);
    for(int i=1;i<=N;i++)
    {
        fscanf(fin,"%d%d",&v[i].st,&v[i].dr);
    }
    std::sort(&v[1],&v[N+1],cmp);
    int last=1;
    int ans=0;
    for(int i=2;i<=N;i++)
    {
        if(v[i].st>=v[last].dr)
        {
            ans+=v[last].dr-v[last].st;
            last=i;
        }
        else if(v[i].dr-v[i].st>v[last].dr-v[last].st)
        {
            last=i;
        }
    }
    ans+=v[last].dr-v[last].st;
    fprintf(fout,"%d",ans);
    fclose(fin);
    fclose(fout);
    return 0;
}
bool cmp(interval a,interval b)
{
    return a.dr<b.dr;
}