제출 #291478

#제출 시각아이디문제언어결과실행 시간메모리
291478PyqeGift (IZhO18_nicegift)C++14
100 / 100
965 ms155896 KiB
#include <bits/stdc++.h>

using namespace std;

#define mp make_pair
#define fr first
#define sc second

long long n,d,ttl=0,nn=0,a[2000069],cra[2069],wg[2000069],zs=0,inf=1e18;
pair<long long,pair<long long,long long>> as[4000069];
vector<long long> sq[2000069];

int main()
{
	long long i,j,k,l,w,y=1,x=0,mx=-inf;
	
	scanf("%lld%lld",&n,&d);
	for(i=1;i<=n;i++)
	{
		scanf("%lld",a+i);
		ttl+=a[i];
		mx=max(mx,a[i]);
	}
	if(ttl%d||mx>ttl/d)
	{
		printf("-1\n");
		return 0;
	}
	for(i=1;i<=n;i++)
	{
		nn++;
		as[nn]={x,{y,i}};
		x+=a[i];
		if(x>=ttl/d)
		{
			y++;
			x-=ttl/d;
			if(x)
			{
				nn++;
				as[nn]={0,{y,i}};
			}
		}
	}
	sort(as+1,as+nn+1);
	as[nn+1].fr=ttl/d;
	for(i=1;i<=nn;i++)
	{
		k=as[i].fr;
		l=as[i].sc.fr;
		w=as[i].sc.sc;
		cra[l]=w;
		if(k!=as[i+1].fr)
		{
			zs++;
			wg[zs]=as[i+1].fr-k;
			for(j=1;j<=d;j++)
			{
				sq[zs].push_back(cra[j]);
			}
		}
	}
	printf("%lld\n",zs);
	for(i=1;i<=zs;i++)
	{
		printf("%lld ",wg[i]);
		for(j=0;j<d;j++)
		{
			printf("%lld%c",sq[i][j]," \n"[j==d-1]);
		}
	}
}

컴파일 시 표준 에러 (stderr) 메시지

nicegift.cpp: In function 'int main()':
nicegift.cpp:17:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   17 |  scanf("%lld%lld",&n,&d);
      |  ~~~~~^~~~~~~~~~~~~~~~~~
nicegift.cpp:20:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   20 |   scanf("%lld",a+i);
      |   ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...