Cod sursa(job #2863485)

Utilizator PopoiuAndraPopoiu Andra-Stefania PopoiuAndra Data 6 martie 2022 19:42:24
Problema Heavy metal Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>
#include <cstring>
#define N 100015
using namespace std;

ifstream fin("heavymetal.in");
ofstream fout("heavymetal.out");

int n, m;
struct
{
    int s, f, val;
}ora[N], aux;


void Sortare()
{
    int i;
    bool ok =1;
    while(ok == 1)
    {
        ok = 0;
        for(i = 1; i < n; ++ i)
            if(ora[i].f > ora[i + 1].f ||
               (ora[i].f == ora[i+1].f && ora[i].s < ora[i+1].s))
            {
                ok = 1;
                aux = ora[i];
                ora[i] = ora[i+1];
                ora[i+1]=aux;
            }
    }
}

int main()
{
    int i, ct;
    fin >> n;
    for(i = 1; i <= n; ++ i)
        fin >> ora[i].s >> ora[i].f;
    Sortare();
    int Max = 0;
    for(i = 1; i <= n; ++ i)
    {
        ct = i - 1;
        while(ct >= 1 && ora[ct].f > ora[i].s) ct --;
        ora[i].val = ora[ct].val + ora[i].f - ora[i].s;
    }
    for(i = 1; i <= n; ++ i)
        if(ora[i].val > Max) Max =ora[i].val;
    fout << Max;
    return 0;
}