我已经通过了该问题的所有测试用例,甚至通过了Udebugg上的所有测试用例,并且仍然获得UVA在线法官的WA裁决

时间:2019-06-20 12:27:45

标签: c++ c++11 adhoc

法官姓名-UVA在线法官
问题名称-汉堡时间?
问题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 :(得分:0)

对于

3

Z ..

此代码失败。在获取第一个字符之后,将ch =='Z'ans = 0的条件放在开头。