QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#629106#1845. Permutelight_ink_dotsRE 0ms3884kbC++201005b2024-10-11 03:57:582024-10-11 03:57:58

Judging History

你现在查看的是最新测评结果

  • [2024-10-11 03:57:58]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:3884kb
  • [2024-10-11 03:57:58]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int iv9=4;
int T,m,now,flg;
int c[100],p[100];
int pow10(int n){//10^n mod 7
	int res=1;
	for(int i=1;i<=n%6;i++)
		res=10*res%7;
	return res;
}
int main(){
	scanf("%d",&T);
	int f=T>10;
	int cs=0;
	while(T--){
		cs++;
		m=now=flg=0;
		for(int i=0;i<=9;i++)
			scanf("%d",&c[i]);
		if(f){
//			if(cs!=13)
//				continue;
			for(int i=0;i<=9;i++)
				scanf("%d%c",c[i],i==9? '\n':' ');
			return 0;
		}
		for(int i=0;i<=9&&m<8;i++)
			while(m<8&&c[i])
				c[i]--,p[++m]=i;
		for(int i=0;i<=9;i++){
			int v=pow10(c[i]);
			now=(now*v+(v-1)*iv9*i)%7;
		}
		now=now*pow10(m)%7;
		do{
			int cur=now;
			for(int i=1;i<=m;i++)
				cur=(cur*10+p[i])%7;
			if(cur==0){
				flg=1,printf("%d\n",10+m);
				for(int i=0;i<=9;i++)
					printf("%d %d\n",c[i],i);
				for(int i=1;i<=m;i++)
					printf("1 %d\n",p[i]);
				break;
			}
		}while(next_permutation(p+1,p+1+m));
		if(flg==0)
			puts("-1");
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3884kb

input:

3
0 1 0 0 1 0 0 0 0 0
0 2 0 0 0 0 1 0 0 1
0 1000000000 0 0 0 0 0 0 0 0

output:

12
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
1 1
1 4
14
0 0
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0 9
1 1
1 1
1 6
1 9
-1

result:

ok T=3

Test #2:

score: -100
Runtime Error

input:

100000
0 0 0 1 0 1 1 1 0 1
1 1 0 0 1 0 1 0 1 0
1 1 1 1 0 0 0 1 0 1
0 1 1 0 0 1 1 1 1 0
0 0 1 0 1 0 1 0 1 0
0 1 0 0 0 0 0 1 0 0
1 1 0 0 0 0 0 0 1 1
1 0 1 1 1 0 1 0 0 0
0 1 1 0 0 1 0 1 0 1
1 0 0 1 1 0 0 1 0 0
1 1 0 1 0 0 1 0 1 1
0 0 1 0 0 0 0 1 0 0
0 1 1 1 1 1 1 1 0 1
1 0 0 0 0 1 0 0 0 1
0 0 0 0 1 0 1...

output:


result: