来自一个鶸的代码
查看原帖
来自一个鶸的代码
164955
EMTsaiko楼主2020/11/5 21:01

向大佬求助我这垃圾代码错在哪里

//#include<bits/stdc++.h>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <queue>
#include <vector>
#include <stack>
#define inf 9999999
using namespace std;

long long  pplus[100000+100],ssub[100000+100];
long long a[100000+100],b[100000+100];
//pplus是储存第i位置之前有多少个1, ssub是储存第i位置之前有多少个-1;
 
int main(){
	int t;
	cin>>t;
	while(t--){
		int n;
		cin >>n;
		for(int i=0;i<n;i++){
			cin >>a[i];
			if(a[i]==1)
				pplus[i+1]+=1;
			if(a[i]==-1)
				ssub[i+1]+=1;
			if(i>0){
				ssub[i] += ssub[i-1];
				pplus[i] += pplus[i-1];	
			}
			//对于a[i]位置的1与-1的数量是a[i-1]位置加上a[i-1]位置处之前的数量
			
		}
		for(int i=0;i<n;i++)
		printf("%d ",pplus[i]);
		printf("\n");
		int f=1;		
		for(int i=0;i<n;i++){

			cin >>b[i];
			if( b[i]<a[i] && ssub[i]==0 ) f=0;
			if( b[i]>a[i] && pplus[i]==0 ) f=0;
		}
		
		if(f) printf("YES\n");
		else printf("NO\n");
		
		for(int i=0;i<n;i++){
			pplus[i]=0;
			ssub[i]=0;
		}
		
	}

    return 0;
}
2020/11/5 21:01
加载中...