永发信息网

OJ提交 "Time Limit Exceed"

答案:2  悬赏:60  手机版
解决时间 2021-01-24 06:44
  • 提问者网友:感性作祟
  • 2021-01-23 19:37
OJ提交 "Time Limit Exceed"
最佳答案
  • 五星知识达人网友:十年萤火照君眠
  • 2021-01-23 21:08
这个输入规模比较大, 如果算法是O(n^2), 可能会超时, 你可以参考我写的,不知到原题在哪,没有测试啊!!你自己试试!
#include
int main()
{
int n, i, j, count, a[20000];
int sum_nan, sum_nv;

while (scanf("%d", &n) != EOF && n != 0)
{
count = sum_nan = sum_nv = 0;
for (i = 0; i < 2 * n; i++)
{
scanf("%d", &a[i]);
sum_nan += a[i];
}
sum_nv = sum_nan;

for (j = 2 * n - 1, i = 0; i < 2 * n && j >= 0;)
{
if (sum_nan == sum_nv)
{
sum_nan -= a[j--];
sum_nv -= a[i++];
count++;
}
else if (sum_nan > sum_nv)
{
sum_nan -= a[j--];
}
else if (sum_nan < sum_nv)
{
sum_nv -= a[i++];
}

}
printf("%d\n", count);
}
return 0;
}
全部回答
  • 1楼网友:零点过十分
  • 2021-01-23 22:43
i=k那个循环超时了。做acm的吧,
循环次数超过10000肯定超时
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯