Cod sursa(job #2731015)

Utilizator Linca_AmaliaLinca Mihaela Amalia Linca_Amalia Data 27 martie 2021 11:04:11
Problema Tribute Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>
using namespace std;
ifstream fin("tribute.in");
ofstream fout("tribute.out");
int n, lat1, lat2, t, i, pozst, x[50005], y[50005], f[50005], dr[50005], DR[50005], st[50005], ST[50005], minim[3];
int main(){
    fin >> n >> lat1 >> lat2;
    for ( i = 1; i <= n; i++ )
        fin >> x[i] >> y[i];
    for ( t = 1; t <= 2; t++ ){

        for ( i = 0; i <= 50000; i++ )
            f[i] = 0;
        for ( i = 1; i <= n; i++ )
            if ( t == 1 )
                f[ x[i] ]++;
            else
                f[ y[i] ]++;

        st[0] = 0;
        ST[0] = f[0];
        for ( i = 1; i <= 50000; i++ ){
            st[i] = st[i-1] + ST[i-1];
            ST[i] =  ST[i-1] + f[i];
        }

        dr[50000] = 0;
        DR[50000] = f[50000];
          for ( i = 49999; i >= 0; i-- ){
            dr[i] = dr[i+1] + DR[i+1];
            DR[i] =  DR[i+1] + f[i];
        }

        minim[t] = 2000000000;
        for ( pozst = 0; pozst + lat1 <= 50000; pozst++ ){
            if ( minim[t] > st[pozst] + dr[pozst + lat1] )
                minim[t] = st[pozst] + dr[pozst + lat1];
        }
        lat1 = lat2;
    }
    fout << minim[1] + minim[2];
    return 0;
}