Informatika gyűjtemény

Egy szinttel feljebb uj_selejtezo.cpp

2004050607080910

NézetNyomtat

uj_selejtezo.cpp (Vissza)
Az alábbi letöltési lehetőségek közül választhatsz: (segítség)
Karakterkódolás:
Sortörés:
Típus: text/plain
Tartalmaz szöveget
Karakterkódolás: utf-8
Méret: 1 KB
/*
    Informatika algoritmus szakkör
    Feladat: Selejtező
    Forrás: http://prog.berzsenyi.hu:8080/prog/View/szakkor/bdg/0910/25ora/selejtezo
    Uray M. János, 2010. Április 20.
*/

#include <iostream>
#include <fstream>
using namespace std;

typedef unsigned long long int qword;

#define MaxP 60

int T, C, P;
qword S[MaxP];

qword Calc (void);

int main (int AN, char * Args []) {
    if (AN < 3) {
        cerr << "Arguments!!!" << endl;
        return 1;
    }
    ifstream IF(Args[1]);
    ofstream OF(Args[2]);
    int I, J;
    if (IF.fail() || OF.fail()) {
        cerr << "Wrong file(s)." << endl;
        IF.close();
        OF.close();
        return 1;
    }
    IF >> T;
    for (= 0; I < T; I++) {
        IF >> P >> C;
        for (= 0; J < P; J++)
            IF >> S[J];
        OF << "Case #" << I + 1 << ": " << Calc() << endl;
    }
    IF.close();
    OF.close();
    return 0;
}

qword Calc (void) {
    int I, N;
    // Az ideiglenes maximum, amely akkor lesz pontos, ha a csökkentések száma (N) 0
    qword Max0;
    do {
        Max0 = 0;
        for (= 0; I < P; I++)
            Max0 += S[I];
        Max0 /= C;
        N = 0;
        for (= 0; I < P; I++)
            if (S[I] > Max0) {
                S[I] = Max0;
                N++;
            }
    } while (> 0);
    return Max0;
}
(Vissza)