问题: - https://www.codechef.com/JUNE17/problems/NEO01
我的解决方案,根据我的说法应该是上述问题的正确解决方案,但我不断获得RTE。
#include<stdio.h>
int main()
{
long arr[10000];
int t,n,p=0;
scanf("%d",&t);
while(t--)
{
long hap1=0,hap2=0;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
for(int i=0;i<n;i++)
{
if(arr[i]>=0)
{
hap1+=arr[i];
p++;
}
else
{
hap2+=arr[i];
}
}
printf("%d\n",hap1*p+hap2);
}
return 0;
}
编辑:对不起,我是初学者,通常使用cout和cin,使用scanf和printf来节省时间,只是忘了添加&amp;使用scanf时。
虽然我的代码在Dev-C ++ 5.11上工作正常,但它显示运行时错误(SIGSEGV),我不知道它为什么会发生。
答案 0 :(得分:0)
您错误地使用了scnaf
。将scanf("%d",t);
更改为scanf("%d",&t);
答案 1 :(得分:0)
问题中N的约束是1≤N≤10^ 5因此你需要声明一个[size],size = 10 ^ 5.