Új hozzászólás Aktív témák

  • Ron Swanson

    senior tag

    Az előző problémát megoldottam, viszont most ismét szükségem lenne egy kis segítségre. (Ez már egy másik feladat.)

    Van ez a kódom:

    #include <iostream>
    #include <vector>

    class TVendegek
    {
    public:
    int erkezes;
    int tavozas;
    TVendegek(const int E, const int T):
    erkezes(E), tavozas(T) {}
    const bool talalkoztak(const TVendegek & g) const;
    const int tartozkodasiIdo() const {
    return tavozas > erkezes;
    }
    };

    const bool TVendegek::talalkoztak(const TVendegek & g) const
    {
    const TVendegek * a;
    const TVendegek * b;
    if (this->erkezes > g.erkezes) {
    a = &g;
    b = this;
    } else {
    a = this;
    b = &g;
    }
    return (a->tavozas >= b->erkezes);
    }

    int main()
    {
    using namespace std;
    int N, i, Ei, Ti;
    vector<TVendegek> vendegek;
    int max_index, max_darab, darab, j;

    cin >> N;
    for (i = 1; i <= N; i++) {
    cin >> Ei >> Ti;
    vendegek.push_back(TVendegek(Ei, Ti));
    }

    max_index = 0;
    max_darab = 0;
    for (i = 1; i < vendegek.size(); i++) {
    darab = 0;
    for (j = 0; j < vendegek.size(); j++) {
    if (j != i) {
    if (vendegek[i].talalkoztak(vendegek[j])) {
    darab++;
    }
    }
    }
    if (max_darab < darab) {
    max_darab = darab;
    max_index = i;
    }
    }
    cout << (max_index + 1) << endl;
    cout << max_darab << endl;
    return 0;
    }

    A probléma pedig az, hogy a feladatnál meg van adva, hogy 0,2 másodperc az időlimit. Kis mennyiségű adatnál szépen le is fut, de ha mondjuk N = több ezer, akkor nem fut le 0,2s alatt... :(

Új hozzászólás Aktív témák