coderforces 1984c

61 阅读1分钟

Problem - C1 - Codeforces

c题这样写只过了三个数据:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10;
int a[N];
int flag1;
void solve()
{
	int ans1=0,ans2=0,ans3=0,cnt1=0,cnt2=0;
	int n;cin>>n;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];	   
		if(a[i]<0) cnt1++;
	   else if(a[i]>=0) cnt2++;	
	}

	
	
	if(cnt1==n)  //如果全是负数  只最后一个加绝对值 
	{
		for(int i=0;i<n;i++)
		{
		   if(i==n-1) ans2=abs(ans2+a[i]);
		   else ans2+=a[i];	
		} 
		cout<<ans2<<endl; 
	}
	else if(cnt2==n) //全是正数 直接相加 
	{
		for(int i=0;i<n;i++) 
		ans1+=a[i];
		 cout<<ans1<<endl;
	} 
    else if(cnt1!=n && cnt2!=n)
	{
			for(int i=0;i<n;i++) 
	     	ans3=abs(ans3+a[i]);
		 cout<<ans3<<endl;
	} 
}
signed main()
{
	int t;cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
}