20分不知道错误 (。•́︿•̀。)
查看原帖
20分不知道错误 (。•́︿•̀。)
1228836
destiny_w楼主2024/10/12 16:47
#include<bits/stdc++.h>
using namespace std;
struct node {
	int num;
	int q;
};
const int N=1e6+5;
node a[N];int n;

void f(int x){
	int l=x-1,r=x+1;
	int sum=a[x].num;
	while(sum<0 && l>0 && r<=n){
		if(a[l].num>a[r].num){
			sum+=a[l].num;
			a[l].q=-1;
			l--;
		}
		else {
			sum+=a[r].num;
			a[r].q=-1;
			r++;
		}
		
	
	}
	return;
}
int main(){
		int sum;
	cin>>n;
	for(int i=1;i<=n;++i){
		cin>>a[i].num;
		sum+=a[i].num;
		a[i].q=1;
	}
	if(sum<=0){
		cout<<"Impossible"<<endl;
		return 0;
	}
	int g=0;
	for(int i=1;i<=n;++i){
		if(a[i].q==1){
			a[i].q=0;
			f(i);
			
		}
			
	}

	for(int i=1;i<=n;++i){
		if(a[i].q==0){
		//cout<<a[i].num<<endl;
			g++;
		}
	}
	cout<<g<<endl;
	return 0;
	
	}
2024/10/12 16:47
加载中...