Cod sursa(job #2047593)

Utilizator patcasrarespatcas rares danut patcasrares Data 25 octombrie 2017 00:21:37
Problema Heavy metal Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
#include<vector>
#include<queue>
#include<iostream>
#include<algorithm>
#define DN 100005
#include<bitset>
#define x first
#define y second
using namespace std;
ifstream fin("heavymetal.in");
ofstream fout("heavymetal.out");
long long a[DN],c[DN],f,g,n,nr,r[DN],v[DN];
pair<int,int>x[2*DN];
typedef pair<int,int> pii;
pii d[DN];
int cmp(pii A,pii B)
{
    return A.x<B.x;
}
int main()
{
   // cout<<(sizeof(x)+sizeof(a)+sizeof(c))/1000;
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>f>>g;
        nr++;
        a[i]=g-f;
        x[nr].x=f;
        x[nr].y=i;
        nr++;
        x[nr].x=g;
        x[nr].y=i;
    }
    n=nr;
    sort(x+1,x+n+1,cmp);
    for(int i=1;i<=n;i++)
    {
        r[i]=r[i-1];
        if(!v[x[i].y])
        {
            v[x[i].y]=1;
            c[x[i].y]=r[i];
        }
        else
            r[i]=max(r[i],c[x[i].y]+a[x[i].y]);
    }
    fout<<r[n];
}