【发布时间】:2015-08-23 17:37:37
【问题描述】:
我一直在做UVA OnlineJudge 507 - Jill Rides Again。我编写了代码,它适用于“调试”页面和其他论坛的每个测试用例。 但是当我提交给在线法官时,它变成了错误的答案。 这是我的代码
#include <stdio.h>
int main() {
int stop[30000];
int n, m, i, j, ans, sum, imax, imin, tmin, a = 1;
scanf("%d", &n);
while (n--) {
// get all values
scanf("%d", &m);
stop[0] = 0;
for (i = 1; i < m; i++) scanf("%d",&stop[i]);
sum = ans = imax = imin = tmin = 0;
for (i = 1; i < m; i++) {
sum += stop[i];
if (sum > ans || (sum == ans && (i - tmin) > (imax - imin))) {
ans = sum;
imax = i;
imin = tmin;
}
if (sum <= 0) {
tmin = i;
sum = 0;
}
}
if (ans > 0) {
printf("The nicest part of route %d is between stops %d and %d\n", a++, imin + 1, imax + 1);
} else {
printf("Route %d has no nice parts\n", a++);
}
}
return 0;
}
我的代码有什么问题?
【问题讨论】:
-
1)
int stop[30000];对于自动存储来说可能有点大。建议将其移至全球。 2)#include <cstdio>不能在真正的 C 编译器上工作。 -
请不要在标题中添加“已解决” - 相反,您应该通过选中相应答案旁边的复选标记来表明您的问题已得到满意的回答。
-
...请在信用到期时给予信用...
标签: algorithm