이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |