关于我的代码
查看原帖
关于我的代码
528016
TheRealJTC楼主2022/4/11 21:03

谁能造一组数据把我的代码卡掉啊

想了好久80pts

#include<bits/stdc++.h>
using namespace std;
long long p[100003],a[100003],a1[100003];
int main(){
	long long t,n,k=1,y=0,z,f,g;
	bool flag=1;
	scanf("%d",&t);
	for(int i=0;i<t;i++){
		flag=1;
		scanf("%d",&n);
		for(int j=1;j<=n;j++){
			scanf("%lld",&p[j]);
			a1[j]=p[j]-p[j-1];
			a[j]=p[j];
			if(p[j]==-1){
				flag=0;
			}
		}
		if(flag){
			for(int j=1;j<=n;j++){
				printf("%lld ",a1[j]);
			}
			continue;
		}
		for(int j=1;j<=n;j++){
            if(j==1&&p[j]!=-1){
                a[j]=p[j];
                y=j,k=1;
            }else if(a[j]==-1){
				k++,a[j]=1;
			}else{
				f=(p[j]-p[y])/k,g=p[j]-p[y];
				if((p[j]-p[y])%k!=0){
					f++;
				}
				for(int l=z;l<j;l++){
					a[l]=f;
					g-=f;
				}
				a[j]=g;
				y=j,k=1;
			}
			if(k==2){
				z=j;
			}
			if(k==1){
				z=j+1;
			}
		}
		k=1,y=0;
		for(int j=1;j<=n;j++){
			printf("%lld ",a[j]);
		}
		memset(a,0,sizeof(a)),memset(a1,0,sizeof(a1));
		printf("\n");
	}
	return 0;
}
2022/4/11 21:03
加载中...