Cod sursa(job #585917)

Utilizator palcuiealexAlex Palcuie palcuiealex Data 30 aprilie 2011 12:39:44
Problema Fabrica Scor 0
Compilator cpp Status done
Runda Algoritmiada 2011, Runda Finală, Clasele 10-12 Marime 1.18 kb
#include <iostream>
#include <cstdio>

using namespace std;

const int MAX_BERI_PROCES = 10000000;

int nBeri, nA, nB;

int timpA[MAX_BERI_PROCES], timpB[MAX_BERI_PROCES];
int finishA[MAX_BERI_PROCES], finishB[MAX_BERI_PROCES];

void read_problem(){
    freopen("fabrica.in","r",stdin);
    freopen("fabrica.out","w",stdout);

    scanf("%d%d%d",&nBeri,&nA,&nB);

    for(int i=0; i<nA; ++i)
        scanf("%d",&timpA[i]);
    for(int i=0; i<nB; ++i)
        scanf("%d",&timpB[i]);
}

void solve_brut(){
    int nonProc = nBeri, inProcA = 0;
    int solA = 0;
    while(nonProc || inProcA){
        ++solA;
        for(int i=0;i<nA;++i){
            //Pun la procesat
            if (!finishA[i] && nonProc){
                finishA[i] = 1;
                --nonProc;
                ++inProcA;
            }
            else if (finishA[i])
                ++finishA[i];

            //Verific daca s-a sfarsit
            if (finishA[i] == timpA[i]){
                --inProcA;
                finishA[i] = 0;
            }

        }
    }
    printf("%d %d\n",solA, solA+69);
}

int main()
{
    read_problem();
    solve_brut();
    return 0;
}