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
AC × 3
AC × 44
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