800*B. Long Long(贪心)

800*B. Long Long(贪心)_第1张图片

800*B. Long Long(贪心)_第2张图片

解析:

        因为可以无限操作,所以最大值即为全部数字的绝对值,次数为连续负数区间的个数。

#include
using namespace std;
#define int long long
const int N=2e5+5;
int t,n,a[N];
signed main(){
	scanf("%lld",&t);
	while(t--){
		scanf("%lld",&n);
		int sum=0;
		for(int i=1;i<=n;i++){
			scanf("%lld",&a[i]);
			sum+=abs(a[i]);
		}
		int cnt=0;
		for(int i=1;i<=n;i++){
			if(a[i]<0){
				int j;
				for(j=i;j<=n;j++){
					if(a[j]>0) break;
				}
				cnt+=1;
				i=j-1;
			}
		}
		printf("%lld %lld\n",sum,cnt);
	}
	return 0;
}

 

你可能感兴趣的:(codeforces,算法,数据结构,c语言,c++,开发语言)