Submission #42209134
Source Code Expand
#include<cstdio>
#include<cstring>
#define fep(i,x,y) for(int i=x;i<=y;i++)
#define feq(i,x,y) for(int i=x;i>=y;i--)
#define N 60
#define M 11000
using namespace std;
inline int mymin(int x,int y){return x<y?x:y;}
inline int mymax(int x,int y){return x>y?x:y;}
inline void zwap(int &x,int &y){x^=y^=x^=y;}
int a[N],c[N],n,m;
int b[M][N],top;
int s1[N],t1,s2[N],t2;
int list[N],tail;
inline void chuli(int x,int y,int k){
tail=1;int tx=1,ty=1+k;list[1]=x;list[ty]=y;
if(ty==2)tail++;
fep(i,1,n){
if(i!=x && i!=y)list[++tail]=i;
if(tail==ty-1)tail++;
}
top+=2;
fep(i,1,n)b[top-1][list[i]]=i,b[top][list[i]]=n-i+1;
zwap(b[top][x],b[top][y]);
a[x]-=k;a[y]+=k;
}
int main(){
scanf("%d",&n);
int cnt=0;
fep(i,1,n){
scanf("%d",&a[i]);
cnt+=a[i];
}
if(n&1)m=n;
else if(!(n&1)){
m=n/2;int ji=-n/2;
if(cnt%n!=0){
fep(i,1,n)c[i]=ji+i;
}
}
if(cnt%m!=0){
printf("No\n");
return 0;
}
int k=cnt/n;
fep(i,1,n)a[i]-=k+c[i];
fep(i,1,n){
if(a[i]>0)s1[++t1]=i;
else if(a[i]<0)s2[++t2]=i;
}
while(t1){
int k=mymin(mymin(a[s1[t1]],-a[s2[t2]]),n-1);
chuli(s1[t1],s2[t2],k);
if(!a[s1[t1]])t1--;
if(!a[s2[t2]])t2--;
}
if(!(n&1) && cnt%n){
top++;
fep(i,1,n)b[top][i]=n-i+1;
}
printf("Yes\n");
printf("%d\n",top);
fep(i,1,top){
fep(j,1,n)printf("%d ",b[i][j]);
printf("\n");
}
return 0;
}
Submission Info
| Submission Time |
|
| Task |
C - Permutation Addition |
| User |
juruozjj |
| Language |
C++ (GCC 9.2.1) |
| Score |
500 |
| Code Size |
1399 Byte |
| Status |
AC |
| Exec Time |
6 ms |
| Memory |
1756 KiB |
Compile Error
./Main.cpp: In function ‘void chuli(int, int, int)’:
./Main.cpp:16:13: warning: unused variable ‘tx’ [-Wunused-variable]
16 | tail=1;int tx=1,ty=1+k;list[1]=x;list[ty]=y;
| ^~
./Main.cpp: In function ‘int main()’:
./Main.cpp:28:7: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
28 | scanf("%d",&n);
| ~~~~~^~~~~~~~~
./Main.cpp:31:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
31 | scanf("%d",&a[i]);
| ~~~~~^~~~~~~~~~~~
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
500 / 500 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 02_min_00.txt, 02_min_01.txt, 02_min_02.txt, 02_min_03.txt, 02_min_04.txt, 02_min_05.txt, 02_min_06.txt, 02_min_07.txt, 02_min_08.txt, 02_min_09.txt, 02_min_10.txt, 02_min_11.txt, 02_min_12.txt, 02_min_13.txt, 02_min_14.txt, 03_max_00.txt, 03_max_01.txt, 03_max_02.txt, 03_max_03.txt, 03_max_04.txt, 03_max_05.txt, 03_max_06.txt, 03_max_07.txt, 03_max_08.txt, 03_max_09.txt, 03_max_10.txt, 03_max_11.txt, 03_max_12.txt, 03_max_13.txt, 03_max_14.txt, 04_same_00.txt, 04_same_01.txt, 04_same_02.txt, 04_same_03.txt, 04_same_04.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_00.txt |
AC |
6 ms |
1656 KiB |
| 00_sample_01.txt |
AC |
1 ms |
1648 KiB |
| 00_sample_02.txt |
AC |
1 ms |
1656 KiB |
| 01_rnd_00.txt |
AC |
1 ms |
1624 KiB |
| 01_rnd_01.txt |
AC |
2 ms |
1616 KiB |
| 01_rnd_02.txt |
AC |
2 ms |
1668 KiB |
| 01_rnd_03.txt |
AC |
1 ms |
1616 KiB |
| 01_rnd_04.txt |
AC |
2 ms |
1624 KiB |
| 01_rnd_05.txt |
AC |
1 ms |
1664 KiB |
| 02_min_00.txt |
AC |
3 ms |
1668 KiB |
| 02_min_01.txt |
AC |
1 ms |
1636 KiB |
| 02_min_02.txt |
AC |
1 ms |
1676 KiB |
| 02_min_03.txt |
AC |
1 ms |
1596 KiB |
| 02_min_04.txt |
AC |
1 ms |
1508 KiB |
| 02_min_05.txt |
AC |
2 ms |
1664 KiB |
| 02_min_06.txt |
AC |
1 ms |
1612 KiB |
| 02_min_07.txt |
AC |
1 ms |
1652 KiB |
| 02_min_08.txt |
AC |
1 ms |
1572 KiB |
| 02_min_09.txt |
AC |
1 ms |
1732 KiB |
| 02_min_10.txt |
AC |
2 ms |
1620 KiB |
| 02_min_11.txt |
AC |
1 ms |
1608 KiB |
| 02_min_12.txt |
AC |
1 ms |
1516 KiB |
| 02_min_13.txt |
AC |
1 ms |
1604 KiB |
| 02_min_14.txt |
AC |
1 ms |
1568 KiB |
| 03_max_00.txt |
AC |
2 ms |
1700 KiB |
| 03_max_01.txt |
AC |
1 ms |
1612 KiB |
| 03_max_02.txt |
AC |
1 ms |
1704 KiB |
| 03_max_03.txt |
AC |
2 ms |
1664 KiB |
| 03_max_04.txt |
AC |
3 ms |
1684 KiB |
| 03_max_05.txt |
AC |
2 ms |
1672 KiB |
| 03_max_06.txt |
AC |
1 ms |
1600 KiB |
| 03_max_07.txt |
AC |
1 ms |
1648 KiB |
| 03_max_08.txt |
AC |
2 ms |
1700 KiB |
| 03_max_09.txt |
AC |
2 ms |
1756 KiB |
| 03_max_10.txt |
AC |
2 ms |
1756 KiB |
| 03_max_11.txt |
AC |
2 ms |
1700 KiB |
| 03_max_12.txt |
AC |
1 ms |
1652 KiB |
| 03_max_13.txt |
AC |
2 ms |
1660 KiB |
| 03_max_14.txt |
AC |
1 ms |
1668 KiB |
| 04_same_00.txt |
AC |
1 ms |
1688 KiB |
| 04_same_01.txt |
AC |
1 ms |
1684 KiB |
| 04_same_02.txt |
AC |
1 ms |
1676 KiB |
| 04_same_03.txt |
AC |
2 ms |
1728 KiB |
| 04_same_04.txt |
AC |
1 ms |
1684 KiB |