QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#842393 | #1845. Permute | hicgnliaw | WA | 172ms | 3952kb | C++14 | 3.3kb | 2025-01-04 12:22:32 | 2025-01-04 12:22:33 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int rc[6] = {1,3,2,6,4,5};
int T,rcnt[10],cnt[7],kd,sum,apn[7],spn[7],sc,akd;
int f(int p){
return rc[p%6];
}
void getv(int x,int c = -1){
if(c>=0){
int dl = min(c,rcnt[x]);
// printf("%d %d!\n",c,dl);
printf("%d %d\n",dl,x);
c-=dl;
rcnt[x]-=dl;
x+=7;
printf("%d %d\n",c,(x<10?x:0));
if(x<10)rcnt[x]-=c;
return;
}
if(rcnt[x])rcnt[x]--,spn[sc++] = x;
else rcnt[x+7]--,spn[sc++] = x+7;
if(!rcnt[spn[sc-1]])akd--;
}
int pt(){
int r = 0;
for(int i = 0;i<10;i++){
if(rcnt[i]){
printf("%d %d\n",rcnt[i],i);
r+=(f(sum)-f(sum-rcnt[i]))*i;
sum-=rcnt[i];
}
}
return (r*4%7+7)%7;
}
void bl(){
sort(spn,spn+sc);
printf("%d\n",sc+akd);
int nr,r = pt();
// printf("%d\n",r);
do{
nr = 0;
for(int i = 0;i<sc;i++)nr = (nr*3+spn[i])%7;
if((nr+r)%7==0)break;
}while(next_permutation(spn,spn+sc));
if((nr+r)%7)exit(int('?'));
for(int i = 0;i<sc;i++)printf("1 %d\n",spn[i]);
}
int main(){
scanf("%d",&T);
while(T--){
memset(cnt,0,sizeof(cnt));
sum = akd = 0;
for(int i = 0;i<10;i++){
scanf("%d",&rcnt[i]);
if(rcnt[i])akd++;
cnt[i%7]+=rcnt[i];
sum+=rcnt[i];
}
kd = 0;
for(int i = 0;i<7;i++)if(cnt[i])apn[kd++] = i;
sc = 0;
if(kd>=4){
for(int i = 0;i<4;i++)getv(apn[i]);
bl();
}else if(kd==3){
int co = 0;
for(int i:{0,1,2})if(cnt[apn[i]]==1)co++;
if(co<=1){
for(int i:{1,2})if(cnt[apn[i]]==1)swap(apn[i],apn[0]);
getv(apn[0]);
for(int i:{1,2}){
for(int ct:{1,2})getv(apn[i]);
}
bl();
}else{
// printf("?");
// for(int i = 0;i<10;i++)printf("%d ",rcnt[i]);
// printf("\n");
for(int i:{0,1})if(cnt[apn[i]]!=1)swap(apn[i],apn[2]);
int r = (f(sum)-1)*apn[2]*4%7,cr = min(sum,12),d[2] = {apn[0]-apn[2],apn[1]-apn[2]};
bool fg = 0;
for(int i = 0;i<cr;i++){
for(int j = 0;j<cr;j++){
if(i==j)continue;
if(((r+f(i)*d[0]+f(j)*d[1])%7+7)%7==0){
printf("10\n");
getv(apn[2],sum-max(i,j)-1);
if(i>j)getv(apn[0],1);
else getv(apn[1],1);
getv(apn[2],abs(i-j)-1);
if(i<j)getv(apn[0],1);
else getv(apn[1],1);
getv(apn[2],min(i,j));
fg = 1;
break;
}
}
if(fg)break;
}
if(!fg)printf("-1\n");
}
}else if(kd==2){
if(sum<=5){
for(int i = 0;i<10;i++){
while(rcnt[i]--)spn[sc++] = i;
}
int nr;
do{
nr = 0;
for(int i = 0;i<sc;i++)nr = (nr*3+spn[i])%7;
if(!nr)break;
}while(next_permutation(spn,spn+sc));
if(nr){
printf("-1\n");
}else{
printf("%d\n",sum);
for(int i = 0;i<sum;i++)printf("1 %d\n",spn[i]);
}
}else{
if(cnt[apn[0]]>cnt[apn[1]])swap(apn[0],apn[1]);
if(cnt[apn[0]]>1){
// printf("!");
for(int ct:{0,1})getv(apn[0]);
for(int ct:{0,1,2})getv(apn[1]);
bl();
}else{
int r = (f(sum)-1)*4*apn[1]%7;
bool fg = 0;
for(int i = 0;i<6;i++){
if((f(i)*(apn[0]-apn[1]+7)+r)%7==0){
printf("6\n");
getv(apn[1],sum-i-1);
getv(apn[0],1);
getv(apn[1],i);
fg = 1;
break;
}
}
if(!fg)printf("-1\n");
}
}
}else{
if(apn[0]&&sum%6)printf("-1\n");
else{
printf("2\n");
getv(apn[0],sum);
}
}
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3948kb
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:
2 1 1 1 4 10 2 1 0 8 1 6 0 0 0 1 0 8 0 2 1 9 0 1 0 8 -1
result:
ok T=3
Test #2:
score: 0
Accepted
time: 94ms
memory: 3864kb
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:
5 1 6 1 5 1 7 1 9 1 3 5 1 8 1 0 1 1 1 6 1 4 6 1 7 1 9 1 0 1 1 1 3 1 2 6 1 6 1 8 1 1 1 2 1 7 1 5 4 1 6 1 4 1 8 1 2 -1 10 1 1 1 8 0 2 1 9 0 1 0 8 1 0 0 7 0 1 0 8 5 1 6 1 2 1 0 1 3 1 4 5 1 9 1 2 1 7 1 1 1 5 -1 6 1 6 1 8 1 1 1 0 1 9 1 3 -1 8 1 4 1 5 1 6 1 9 1 1 1 7 1 2 1 3 -1 4 1 6 1 4 1 8 1 9 7 1 6 1 7...
result:
ok T=100000
Test #3:
score: 0
Accepted
time: 121ms
memory: 3752kb
input:
100000 2 1 2 1 0 1 1 0 2 0 1 2 0 1 1 2 1 1 2 1 2 2 2 1 0 2 1 1 2 2 1 1 0 2 0 2 0 1 2 0 1 0 2 2 1 2 1 0 2 2 0 1 2 2 2 1 0 2 1 2 1 1 2 0 0 1 1 0 1 0 1 0 2 2 2 0 1 0 1 1 2 1 1 2 1 0 2 0 0 1 1 0 2 2 2 0 2 1 0 1 2 0 1 1 1 1 1 1 2 1 0 1 1 0 2 0 2 0 1 2 2 1 1 0 2 0 2 1 0 1 1 2 2 2 0 2 1 1 1 0 2 0 0 2 0 2 2...
output:
9 1 0 1 2 1 5 1 6 2 8 1 1 1 0 1 2 1 3 10 1 1 1 4 2 5 1 6 1 7 2 8 1 0 1 9 1 1 1 3 12 1 0 1 1 1 2 2 5 1 6 1 7 2 8 2 9 1 0 1 1 1 2 1 3 8 1 3 1 5 1 7 2 8 1 1 1 5 1 0 1 3 11 1 2 1 3 1 4 2 5 1 6 1 8 2 9 1 2 1 8 1 3 1 0 11 1 2 1 3 2 4 1 5 1 7 1 8 2 9 1 1 1 2 1 3 1 7 7 1 2 1 6 1 8 1 0 1 1 1 2 1 5 9 1 2 1 3 ...
result:
ok T=100000
Test #4:
score: 0
Accepted
time: 127ms
memory: 3864kb
input:
100000 1 3 3 2 3 0 2 1 3 2 3 1 2 0 0 3 1 0 0 1 3 2 0 2 0 2 0 1 3 1 0 1 0 3 1 1 0 3 0 2 2 2 2 3 3 3 1 0 3 0 0 3 0 2 0 3 2 0 2 3 3 0 1 1 3 3 2 1 3 1 1 2 3 0 1 2 2 0 2 3 3 1 0 3 2 0 2 3 1 0 2 1 2 3 0 2 2 3 1 2 3 3 0 3 0 0 1 1 1 1 1 3 1 0 2 1 0 3 3 3 3 0 0 3 3 2 3 3 2 1 3 3 3 1 0 2 3 0 2 3 3 3 1 3 3 2 3...
output:
12 2 1 2 2 1 3 3 4 2 6 1 7 3 8 2 9 1 1 1 2 1 3 1 0 9 2 0 1 2 2 5 1 6 1 9 1 0 1 5 1 1 1 2 10 2 0 1 1 1 3 2 5 1 7 3 8 1 0 1 9 1 1 1 3 9 2 3 1 4 1 5 2 7 1 9 1 3 1 7 1 1 1 9 12 1 0 1 1 1 2 2 3 3 4 3 5 1 6 3 8 1 0 1 2 1 3 1 1 10 2 1 1 3 2 5 2 6 2 8 2 9 1 1 1 9 1 3 1 5 11 2 0 3 4 3 5 2 6 1 7 2 8 1 9 1 2 1...
result:
ok T=100000
Test #5:
score: 0
Accepted
time: 131ms
memory: 3880kb
input:
100000 0 1 3 1 1 0 1 3 0 1 4 3 4 1 3 4 3 4 2 3 1 3 1 3 3 4 3 4 2 2 1 0 1 0 3 3 3 1 1 1 3 4 1 3 1 0 1 2 1 2 0 1 2 1 4 1 0 3 4 2 0 4 1 2 4 3 2 1 1 3 0 4 0 4 2 1 0 2 1 3 4 4 0 4 4 1 4 1 4 1 1 3 2 1 1 4 2 3 4 1 3 3 4 3 3 4 1 2 1 4 3 1 4 0 3 0 4 3 1 4 3 0 3 2 3 4 2 3 1 3 3 1 2 4 3 4 2 4 1 1 2 1 0 2 2 3 2...
output:
9 2 2 1 4 1 6 2 7 1 9 1 2 1 1 1 3 1 7 13 3 0 2 1 3 2 3 4 4 5 3 6 4 7 2 8 3 9 1 1 1 0 1 2 1 3 12 2 1 2 3 3 4 4 5 3 6 4 7 2 8 2 9 1 0 1 1 1 2 1 3 9 2 4 3 5 3 6 1 7 1 9 1 0 1 8 1 2 1 4 12 2 0 3 1 2 3 1 4 1 6 2 7 1 8 2 9 1 1 1 2 1 3 1 0 10 1 2 4 4 1 5 2 7 4 8 2 9 1 1 1 3 1 7 1 2 11 3 1 1 3 4 4 3 5 2 6 1...
result:
ok T=100000
Test #6:
score: 0
Accepted
time: 129ms
memory: 3884kb
input:
100000 0 2 1 4 1 4 1 1 3 4 2 3 3 1 3 4 2 1 1 1 1 2 1 3 3 1 1 5 0 0 1 4 0 3 1 1 0 0 0 4 4 3 5 0 0 0 4 2 5 1 3 2 5 1 2 5 0 0 0 1 2 0 5 3 1 3 0 5 1 3 0 2 5 4 5 5 1 1 1 0 1 3 1 4 4 5 2 2 2 1 2 1 2 1 0 0 1 2 5 1 0 2 0 4 5 4 5 2 0 3 5 3 5 5 2 2 4 0 5 5 3 4 2 2 5 1 5 0 3 4 0 3 3 0 5 3 3 4 3 5 0 3 5 4 3 3 4...
output:
11 1 1 3 3 1 4 4 5 1 6 3 8 4 9 1 2 1 1 1 3 1 7 13 1 0 2 1 2 2 3 4 4 5 2 6 1 7 1 8 1 9 1 0 1 2 1 3 1 1 10 1 1 2 3 3 4 1 5 1 6 5 7 1 0 1 1 1 3 1 2 9 3 1 2 3 1 4 1 5 3 9 1 3 1 0 1 1 1 9 11 3 0 2 1 4 2 3 6 2 7 5 8 1 9 1 0 1 1 1 2 1 6 10 2 0 1 1 4 2 2 4 5 5 1 9 1 0 1 1 1 2 1 3 11 1 0 4 2 2 3 1 4 3 5 5 7 ...
result:
ok T=100000
Test #7:
score: 0
Accepted
time: 128ms
memory: 3944kb
input:
100000 5 5 0 1 0 3 1 5 3 6 0 5 1 4 2 1 1 5 3 4 1 3 0 5 0 2 4 1 5 5 4 5 4 5 3 5 6 3 1 3 6 0 5 3 3 6 3 5 6 3 6 3 4 4 4 0 0 1 6 3 0 5 2 4 2 4 2 5 3 3 2 4 4 5 1 0 5 6 2 3 3 0 3 5 4 3 3 5 2 6 6 3 6 2 0 5 0 2 2 4 5 3 6 2 2 5 6 4 4 2 0 6 4 3 3 6 0 3 4 4 6 5 1 1 2 6 3 6 5 4 1 3 6 5 0 3 0 1 3 2 6 4 5 2 2 6 1...
output:
11 4 0 4 1 3 5 1 6 5 7 3 8 5 9 1 1 1 9 1 3 1 0 12 4 1 3 3 2 4 1 5 1 6 4 7 3 8 4 9 1 1 1 3 1 2 1 7 11 2 1 4 3 2 5 4 6 1 7 5 8 4 9 1 0 1 9 1 1 1 3 14 3 0 4 1 3 2 4 3 3 4 5 5 6 6 3 7 1 8 3 9 1 0 1 2 1 1 1 3 13 5 0 4 2 2 3 3 4 6 5 3 6 5 7 5 8 3 9 1 0 1 3 1 2 1 8 12 5 0 2 1 3 2 3 3 4 4 1 7 6 8 3 9 1 0 1 ...
result:
ok T=100000
Test #8:
score: 0
Accepted
time: 127ms
memory: 3868kb
input:
100000 0 1 3 6 5 0 5 1 1 4 2 3 7 4 3 2 2 3 7 7 6 4 5 6 7 0 1 7 0 1 1 6 1 2 5 2 5 6 0 2 6 3 0 4 4 5 4 0 4 1 6 4 7 4 3 0 3 5 3 7 0 4 0 0 7 0 3 1 2 4 1 2 6 2 1 0 3 1 2 5 7 3 7 4 1 6 1 3 1 5 7 1 6 4 6 5 2 2 1 5 4 1 7 3 0 3 4 1 3 6 7 5 3 3 1 6 3 5 5 1 2 5 5 7 1 2 5 6 1 6 0 0 7 2 0 0 4 7 1 1 0 5 4 1 7 1 1...
output:
10 2 2 5 3 5 4 5 6 1 8 4 9 1 1 1 2 1 3 1 7 14 1 0 2 1 6 2 3 3 3 4 2 5 2 6 3 7 7 8 7 9 1 0 1 2 1 3 1 1 12 5 0 3 1 4 2 5 3 7 4 1 6 7 7 1 9 1 0 1 2 1 3 1 1 11 5 1 1 3 5 4 2 5 5 6 6 7 2 9 1 1 1 2 1 3 1 0 11 5 0 2 1 3 3 4 4 5 5 4 6 4 8 1 0 1 1 1 3 1 9 13 5 0 3 1 6 2 3 3 3 4 3 6 5 7 3 8 7 9 1 2 1 1 1 3 1 ...
result:
ok T=100000
Test #9:
score: 0
Accepted
time: 132ms
memory: 3792kb
input:
100000 7 3 4 5 2 6 6 3 6 0 8 3 8 6 5 1 8 2 7 7 5 1 8 4 7 0 1 1 1 0 1 1 8 7 8 0 6 2 3 7 5 2 1 3 5 8 4 5 1 0 8 7 7 5 3 3 3 6 5 6 4 1 5 0 7 8 0 8 1 4 5 2 6 5 5 2 0 6 8 2 3 0 0 1 7 2 3 1 3 5 2 4 1 3 7 3 3 3 1 5 2 7 8 2 1 8 0 2 1 7 1 5 7 8 1 6 2 3 6 2 0 0 1 6 7 6 8 2 2 0 4 0 3 1 4 3 0 4 7 5 3 3 7 0 6 8 8...
output:
13 6 0 2 1 3 2 4 3 2 4 6 5 6 6 3 7 6 8 1 0 1 1 1 3 1 2 14 7 0 2 1 7 2 5 3 5 4 1 5 8 6 2 7 7 8 7 9 1 2 1 1 1 3 1 0 11 4 0 7 2 3 3 7 4 1 6 1 7 1 8 1 2 1 1 1 3 1 0 11 7 2 6 3 8 4 6 6 2 7 3 8 7 9 1 1 1 0 1 2 1 3 12 4 0 1 1 2 3 5 4 8 5 4 6 5 7 1 8 1 0 1 2 1 3 1 1 14 7 0 6 1 6 2 4 3 3 4 3 5 3 6 6 7 5 8 6 ...
result:
ok T=100000
Test #10:
score: 0
Accepted
time: 136ms
memory: 3952kb
input:
100000 7 8 0 3 2 6 7 9 8 7 7 8 8 5 0 0 6 8 7 7 6 6 0 8 8 9 9 2 1 8 4 7 7 8 2 1 1 3 5 4 1 6 9 6 6 4 0 5 0 2 7 1 7 1 1 2 9 8 5 7 5 3 6 6 1 1 8 4 5 8 4 5 3 0 9 2 8 5 5 4 0 4 9 2 1 4 1 4 0 1 3 4 7 9 0 8 6 5 8 5 4 1 2 1 0 0 2 0 4 9 2 9 0 9 5 7 4 7 6 5 9 3 4 5 9 6 3 2 0 2 3 2 3 4 7 4 6 6 0 7 7 1 5 9 5 6 1...
output:
13 6 0 7 1 2 3 2 4 6 5 7 6 9 7 8 8 6 9 1 0 1 9 1 1 1 3 12 6 0 7 1 7 2 4 3 6 6 8 7 7 8 7 9 1 1 1 0 1 2 1 3 13 5 0 5 1 7 3 8 4 9 5 9 6 2 7 1 8 7 9 1 1 1 9 1 3 1 0 14 3 0 6 1 6 2 7 3 2 4 1 5 1 6 3 7 5 8 4 9 1 0 1 1 1 2 1 3 11 5 1 8 2 5 3 6 4 4 5 5 7 2 9 1 0 1 2 1 3 1 1 12 6 0 6 2 1 4 2 5 9 6 8 7 5 8 7 ...
result:
ok T=100000
Test #11:
score: 0
Accepted
time: 131ms
memory: 3888kb
input:
100000 0 8 3 9 3 7 10 1 5 1 7 7 2 3 5 7 4 5 2 6 6 1 7 7 6 3 4 5 10 7 7 3 3 8 9 0 1 8 1 5 0 6 1 0 5 2 0 4 7 3 9 7 7 3 1 7 8 10 8 7 4 7 3 7 0 2 2 10 0 10 8 9 5 1 4 7 4 6 4 9 1 1 7 7 8 5 7 5 3 2 3 6 6 8 4 5 5 10 3 10 10 1 7 5 1 5 6 5 9 0 9 1 0 0 0 3 6 1 0 0 5 9 9 8 10 8 1 1 1 4 2 5 10 5 7 3 7 2 4 6 1 8...
output:
12 7 1 2 2 8 3 3 4 7 5 10 6 5 8 1 9 1 1 1 2 1 3 1 7 14 6 0 6 1 1 2 2 3 5 4 7 5 4 6 5 7 2 8 6 9 1 1 1 2 1 3 1 0 13 5 0 6 2 6 3 6 4 3 5 4 6 5 7 10 8 7 9 1 0 1 2 1 1 1 3 13 6 0 2 1 2 2 7 3 9 4 1 6 8 7 1 8 5 9 1 0 1 1 1 2 1 3 10 5 1 4 4 2 5 3 7 7 8 3 9 1 4 1 2 1 1 1 7 14 8 0 6 1 6 2 2 3 1 4 7 5 8 6 10 7...
result:
ok T=100000
Test #12:
score: -100
Wrong Answer
time: 172ms
memory: 3756kb
input:
100000 494719969 120370150 440274545 51278543 770105708 138663251 867692060 230246532 162623412 131761825 16498099 70750104 350416959 359532393 346253463 539196901 104480711 629723297 27266106 267471731 320561715 423589912 850677494 604957917 815663121 8935553 252297110 812216267 821793396 495865924...
output:
14 494719968 0 120370149 1 440274544 2 51278542 3 770105708 4 138663251 5 867692060 6 230246532 7 162623412 8 131761825 9 1 0 1 2 1 1 1 3 14 16498098 0 70750103 1 350416958 2 359532392 3 346253463 4 539196901 5 104480711 6 629723297 7 27266106 8 267471731 9 1 0 1 1 1 3 1 2 14 320561714 0 423589911 1...
result:
wrong answer Participant output sum mod 7 = -4 in test 1