D2 T1 50pts 求调
  • 板块灌水区
  • 楼主lyhqwq
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/4/10 18:30
  • 上次更新2023/10/28 04:03:15
查看原帖
D2 T1 50pts 求调
100690
lyhqwq楼主2022/4/10 18:30
#include<bits/stdc++.h>
typedef long long ll;
typedef unsigned long long ull;
#define il inline
using namespace std;
ll n,t,k,tot;
ll p[100005];
void work(ll x,ll y){
	ll q=y/x;
	if(q>1000) q=1000;
	ll r=y%q;
	for(ll i=1;i<x;i++){
		printf("%lld ",q);
	}
	printf("%lld ",q+r);
	k+=x;
	tot+=y;
}
int main(){
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	scanf("%lld",&t);
	while(t--){
		scanf("%lld",&n);
		k=0;
		tot=0;
		for(ll i=1;i<=n;i++) scanf("%lld",&p[i]);
		for(ll i=1;i<=n;i++){
			if(i==1&&p[i]!=-1){
				printf("%lld ",p[i]);
				tot+=p[i];
				k++;
			}
			else{
				if(p[i]==-1){
					if(k==0&&i==n){
						for(ll i=1;i<=n;i++){
							printf("1 ");
							k++;
						}
					}	
				}
				else{
					work(i-k,p[i]-tot);
				}
			}
		}
		puts("");
	}
	return 0;
}
2022/4/10 18:30
加载中...