Cod sursa(job #2212418)

Utilizator DanutAldeaDanut Aldea DanutAldea Data 13 iunie 2018 23:25:20
Problema Tribute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <climits>
using namespace std;

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

int n,i,j,x,y,l,L,k,sol,rasp,f[50001],F[50001],st[50001],dr[50001],ps[50001],pd[50001];
long long sum;

int main(){
    fin>>n>>l>>L;
    for(i=1;i<=n;i++){
        fin>>x>>y;
        f[x]++;
        F[y]++;
    }
    for(k=2;k>=1;k--){
        st[0]=0;
        ps[0]=f[0];
        for(i=1;i<=50000;i++){
            st[i]=st[i-1]+ps[i-1];
            ps[i]=ps[i-1]+f[i];
        }
        dr[50001]=0;
        pd[50001]=f[0];
        for(i=49999;i>=0;i--){
            dr[i]=dr[i+1]+pd[i+1];
            pd[i]=pd[i+1]+f[i];
        }
        sol=INT_MAX;
        for(i=0;i+l<=50000;i++){
            sol=min(sol,st[i]+dr[i+l]);
        }

        rasp+=sol;

        for(i=0;i<=50000;i++)
            f[i]=F[i];

        l=L;
    }
    fout<<rasp;

    return 0;
}