이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <stdio.h>
using namespace std;
const int MAXN=1000005;
int a[MAXN], ansL[MAXN];
int main()
{
int n, k;
cin>>n>>k;
for (int i=0; i<n; i++)
cin>>a[i];
if ((n*a[0])%k)
{
cout<<"-1\n";
return 0;
}
int l=1, r=k, l_i=1, r_i=1;
int numRep=1;
while (r_i<=a[0])
{
if (l==1 && l_i!=1)
{
numRep=(a[0])/(l_i-1);
break;
}
ansL[l]++;
l=r+1;
l_i=r_i;
if (l>n)
{
l%=n;
l_i++;
}
if (l+k-1<=n)
{
r=l+k-1;
r_i=l_i;
}
else
{
r=(l+k-1)%n;
r_i=l_i+1;
}
}
int op=0;
for (int curL=1; curL<=n; curL++)
if (ansL[curL])
op++;
cout<<op<<'\n';
for (int curL=1; curL<=n; curL++)
{
if (!ansL[curL]) continue;
int tempK=k, i=curL;
printf("%d ", numRep*ansL[curL]);
while (tempK--)
{
printf("%d ", i);
i++;
if (i>n) i%=n;
}
printf("\n");
}
char I;
cin >> I;
return 0;
}
# | 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... |