Я прошел все контрольные тесты по проблеме и даже все контрольные тесты на Udebugg и все еще получаю вердикт WA по онлайн-судье UVA - PullRequest
0 голосов
/ 20 июня 2019

Имя судьи - UVA Online Judge
Название проблемы - время бургера?
Проблема ID-11661
Ссылка- https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2708

Я уже пытался ее решить и прошел все тестовые случаи, представленные в pdf проблемы, а также на uDebug. Тем не менее, когда я отправляю решение, я получаю вердикт о неправильном ответе. Пожалуйста, помогите мне с ошибкой. Заранее спасибо.

#include <iostream>
using namespace std;
int main() {
    long n;
    while(1) {
        cin >> n;
        if(n == 0) exit(0);
        char ch;
        long countr = 0;
        cin >> ch;
        char start = ch;
        long ans = 1000000000;
        for(long i = 1; i < n; i++) {
            cin >> ch;
            countr++;
            if(ch == 'Z') {
                ans = 0;
            } else if(start == 'R' && ch == 'D') {
                if(countr < ans) {
                    ans = countr;
                }
            } else if(start == 'D' && ch == 'R') {
                if(countr < ans) {
                    ans = countr;
                }
            }
            if(ch == 'R') {
                start = ch;
                countr = 0;
            }
            if(ch == 'D') {
                start = ch;
                countr = 0;
            }
        }
        cout << ans << endl;
    }
    cout << endl;
    return 0;
}

1 Ответ

0 голосов
/ 20 июня 2019

Для

3

Z ..

этот код не выполняется.Поставьте условие для ch == 'Z' ans = 0 в начале, после того, как вы взяли первый символ.

...