Cod sursa(job #3171180)

Utilizator RichardChessBibire David-Alexandru RichardChess Data 18 noiembrie 2023 14:36:07
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <iostream>
using namespace std;
#include <fstream>
ifstream f("energii.in");
ofstream g("energii.out");

int main() {
    int G, W, c_min;
    f>>G;
    f>>W;
    int EG[G];
    int CG[G];
    for(int i = 1; i<= G; i++){
        f>>EG[i];
        f>>CG[i];
    }

    int aux1, aux2;
    for(int i = 1; i<= G; i++){
        for(int j = i; j<G; j++){
            if(CG[j+1] < CG[j]){
                aux1 = CG[j];
                CG[j] = CG[j+1];
                CG[j+1] = aux1;

                aux2 = EG[j];
                EG[j] = EG[j+1];
                EG[j+1] = aux2;
            }
        }
    }

    int sum_e[G];
    sum_e[1] = EG[1];
    for(int i = 2; i <= G; i++){
        sum_e[i] = sum_e[i - 1] + EG[i];
    }

    int sum_c[G];
    sum_c[1] = CG[1];
    for(int i = 2; i <= G; i++){
        sum_c[i] = sum_c[i - 1] + CG[i];
    }

    c_min = 10000;

    for(int i = 1; i<= G; i++){
        if((sum_e[i] >= W) && (sum_c[i] <= c_min)){
            c_min = sum_c[i];
        }
        if((EG[i] >= W) && (CG[i] <= c_min)){
            c_min = CG[i];
        }
    }
    g<<c_min;
    return 0;
}