1 Востаннє редагувалося Oleg Batron (16.03.2022 17:52:51)

Тема: Курфюрста жахів (algotester №0244)

Слава Україні!
Вирішуючи задачі на algotester зіткнувся з проблемою в цьому завданні(https://algotester.com/uk/ArchiveProble … itor/20110).
Помилка на 5 тесті.
Допоможіть знайти помилку в коді, або алгоритмі.

    int n;
    cin >> n;
    string Event[1000];
    for (int i = 0; i < n; i++)
    {
        cin >> Event[i];
    }

    int in = 0, out=0;
    for (int i = 0; i < n; i++)
    {
        if (Event[i] == "In") in++;
        else if (Event[i] == "Out") out++;
    }

    if (in > out) cout << "Cunning elector";
    else if (in < out) cout << "Error";
    else if (in == out) cout << "Just a fantasy";

2 Востаннє редагувалося koala (16.03.2022 19:32:42)

Re: Курфюрста жахів (algotester №0244)

Героям слава!

Ви не враховуєте ситуації, коли помилка стається посередині голосування. Наприклад,

2
Out
In

Має повернути Error, а не Just a fantasy, бо не може людина вийти з порожньої кабінки

3 Востаннє редагувалося Oleg Batron (16.03.2022 19:57:39)

Re: Курфюрста жахів (algotester №0244)

koala написав:

Героям слава!

Ви не враховуєте ситуації, коли помилка стається посередині голосування. Наприклад,

2
Out
In

Має повернути Error, а не Just a fantasy, бо не може людина вийти з порожньої кабінки

Це буде правильною перевіркою?

bool flag = true;
for (int i = 1; i < n; i++)
    {    
        if (Event[i] == "Out" && Event[i-1] != "In") {
            flag = false;
        }
    }
    if (flag) {
        if (in > out) cout << "Cunning elector";
        else if (out > in) cout << "Error";
        else if (in == out) cout << "Just a fantasy";
    }
    else
    {
        cout << "Error";
    }

4 Востаннє редагувалося koala (16.03.2022 20:02:04)

Re: Курфюрста жахів (algotester №0244)

Oleg Batron написав:

Це буде правильною перевіркою?

На це питання вам може алготестер відповісти.

5

Re: Курфюрста жахів (algotester №0244)

koala написав:
Oleg Batron написав:

Це буде правильною перевіркою?

На це питання вам може алкотестер відповісти.

Власне кажучи, тепер алготестер видає помилку на 2 тесті :|

6

Re: Курфюрста жахів (algotester №0244)

І правильно - бо вам не це треба перевіряти. Вам потрібна одна змінна - кількість виборців на дільниці, і якщо вона стає від'ємною - це error.

Подякували: Oleg Batron1

7

Re: Курфюрста жахів (algotester №0244)

#include<iostream>
#include<string>
using namespace std;
int main()
{
    int n;
    cin >> n;
    int voters = 0;
    for (int i = 0; i < n; i++)
    {
        string event;
        cin >> event;
        if ( event == "In" )
            voters++;
        else
            voters--;
        if ( voters < 0 ) {
            cout << "Error";
            return 0;
        }
    }
    if ( voters > 0 ) cout << "Cunning elector";
    else cout << "Just a fantasy";
    return 0;
}
Подякували: Oleg Batron1