Cod sursa(job #2498010)

Utilizator Simi_bogdanSimion Bogdan Dumitru Simi_bogdan Data 23 noiembrie 2019 13:25:37
Problema Heavy metal Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<bits/stdc++.h>
using namespace std;
ifstream in("heavymetal.in");
ofstream out("heavymetal.out");
int dp[100001];
int  suma=0;
int n;
int x=1;
struct timp
{
    int st,f;


}lista[100001];
void read()
{
    in>>n;
    for(int i=1;i<=n;i++)
    {
        in>>lista[i].st>>lista[i].f;
    }
}
bool comparare(timp a ,timp b)
{
    return (a.f<b.f);
}
bool comparare2(timp a ,timp b)
{
    if(a.st==b.st)
        return (a.f>b.f);
        return false;
}
void sortare()
{
    sort(lista+1,lista+n+1,comparare);
    sort(lista+1,lista+n+1,comparare2);

}
void solve(int &i)
{
    int j=i;
    while(lista[j].st<dp[x-1])
        j++;
    dp[x]=lista[j].f;
    suma=lista[j].f-lista[j].st+suma;
    i=j;
    x++;
}
int main()
{
    read();
    sortare();

    for(int i=1;i<=n;i++ )
    {
        solve(i);
    }
    out<<suma;

}