#include<iostream> #include<cstdio> #include<queue> #include<stack> using namespace std; int considered[12]; bool occupied[25],check[25]; queue <int> john,temp; void setConsidered(int fieldId) { bool alreadyPushed=false; considered[fieldId/5]++; considered[fieldId%5+5]++; if(considered[fieldId/5]==5||considered[fieldId%5+5]==5) { john.push(fieldId); occupied[fieldId]=true; alreadyPushed=true; check[fieldId]=true; //cout<<"I'm pushing "<<fieldId+1<<endl; } //cout<<fieldId/5+1<<' '<<fieldId%5+6<<' '; if(fieldId==8) { considered[10]++; considered[11]++; if(considered[10]==5&&!alreadyPushed) { john.push(fieldId); occupied[fieldId]=true; alreadyPushed=true; check[fieldId]=true; //cout<<"I'm pushing "<<fieldId+1<<endl; } if(considered[11]==5&&!alreadyPushed) { john.push(fieldId); occupied[fieldId]=true; alreadyPushed=true; check[fieldId]=true; //cout<<"I'm pushing "<<fieldId+1<<endl; } } else if(fieldId==0||fieldId==3||fieldId==15||fieldId==24) { considered[10]++; if(considered[10]==5&&!alreadyPushed) { john.push(fieldId); occupied[fieldId]=true; alreadyPushed=true; check[fieldId]=true; //cout<<"I'm pushing "<<fieldId+1<<endl; } //cout<<11; } else if(fieldId==4||fieldId==12||fieldId==16||fieldId==20) { //cout<<fieldId+1<<endl; considered[11]++; if(considered[11]==5&&!alreadyPushed) { john.push(fieldId); occupied[fieldId]=true; alreadyPushed=true; check[fieldId]=true; //cout<<"I'm pushing "<<fieldId+1<<endl; } //cout<<12; } //cout<<fieldId/5+1<<"->"<<considered[fieldId/5]<<endl // <<fieldId%5+6<<"->"<<considered[fieldId%5+5]<<"\n\n"; } void ilustrate() { int x,y=0,count; bool tab[5][5]; string status="OK\n"; for(int i=0;i<5;i++)for(int j=0;j<5;j++)tab[i][j]=false; for(int i=0;i<25;i++) { if(i%5==0) { cout<<endl; x=0; y++; } if(check[i])cout<<'X'; else { cout<<'O'; tab[y][x]=true; } x++; } for(int i=0;i<5;i++) { count=0; for(int j=0;j<5;j++)if(tab[j][i])count++; if(count==5) { status="BLAD\n"; break; } } count=0; for(int i=0;i<5;i++)if(tab[i][i])count++; if(count==5)status="BLAD\n"; count=0; for(int i=0;i<5;i++)if(tab[i][5-i])count++; if(count==5)status="BLAD\n"; cout<<"\nstatus: "<<status; } int main() { //for(int i=0;i<25;i++)check[i]=false; //ilustrate(); int t,margaretsMoves[25],result[12]; scanf("%d",&t); for(int i=0;i<t;i++) { for(int j=0;j<25;j++)check[j]=false; for(int j=0;j<12;j++)considered[j]=0; for(int j=0;j<25;j++)occupied[j]=false; for(int j=0;j<25;j++)scanf("%d",&margaretsMoves[j]); for(int j=0;j<25;j++)setConsidered(margaretsMoves[j]-1); while(!john.empty()) { printf("%d ",john.front()+1); //temp.push(john.top()); //occupied[john.top()]=true; john.pop(); } int it=0,j=0; while(it<13) { if(!occupied[margaretsMoves[j]-1]) { occupied[margaretsMoves[j]-1]=true; it++; } j++; } for(int j=0;j<25;j++) if(!occupied[j]) { printf("%d ",j+1); check[j]=true; } ilustrate(); //printf("\n"); /*while(!temp.empty()) { john.push(temp.top()); temp.pop(); }*/ /*while(!john.empty()) { printf("%d ",john.top()+1); john.pop(); } printf("\n");*/ /*for(int j=0;j<24;j++) { if(margaretsMoves[j]==john.top()) { //result[it]=john john.pop(); } }*/ printf("\n"); } return 0; }
50 7 1 5 4 6 17 21 23 9 18 14 24 13 22 3 8 11 2 16 15 20 12 19 10 25 9 20 4 2 22 25 11 18 13 23 17 6 16 8 24 3 5 1 19 7 14 12 10 15 21 6 3 1 14 22 20 23 2 24 19 9 8 7 4 25 15 11 16 5 21 17 18 10 12 13 11 7 19 12 20 18 24 21 8 1 2 23 22 16 3 6 14 9 13 5 10 17 25 4 15 6 22 19 16 18 8 10 5 2 9 25 20 21 7 24 14 3 23 17 4 15 12 11 13 1 24 12 14 17 8 6 19 18 22 5 7 15 9 11 10 16 3 21 20 2 1 4 25 23 13 19 24 20 17 12 18 3 7 15 10 4 21 22 6 9 2 16 8 23 1 14 25 13 5 11 1 22 8 7 5 23 15 4 3 12 20 14 24 21 18 25 16 19 11 9 17 10 13 6 2 22 21 19 20 8 10 1 23 5 14 4 9 6 3 25 16 11 2 15 24 7 13 18 12 17 18 24 23 11 20 25 14 9 3 8 7 4 19 15 13 21 1 22 6 5 2 10 16 17 12 19 25 12 2 7 17 23 9 24 14 1 18 11 21 8 4 22 10 16 20 5 13 6 15 3 19 16 25 1 22 10 12 5 18 3 23 4 2 9 8 21 24 20 7 15 17 14 13 6 11 18 3 2 19 24 4 23 5 25 16 14 8 15 7 22 12 13 20 10 17 6 1 21 11 9 16 15 8 9 25 1 21 5 19 12 6 2 10 22 14 7 11 23 4 17 24 3 20 13 18 4 15 14 20 1 16 19 10 25 23 2 17 8 11 6 12 24 21 18 5 3 9 7 13 22 13 19 11 21 22 25 1 10 20 12 9 8 5 4 16 18 24 15 6 2 7 14 17 23 3 23 22 20 12 25 18 17 13 14 3 11 9 16 8 7 1 5 10 24 21 19 4 2 15 6 23 1 15 19 10 2 14 12 24 4 17 20 7 9 22 3 8 16 6 11 13 18 25 21 5 5 14 9 24 11 4 23 10 2 16 3 25 1 7 15 19 17 12 18 13 6 21 20 22 8 16 22 2 6 9 23 13 19 8 11 12 17 20 21 24 15 25 10 18 3 4 5 14 7 1 6 24 8 16 2 20 5 1 22 25 18 9 11 4 21 3 23 17 12 14 10 7 15 13 19 23 1 25 14 13 3 5 8 9 4 16 24 11 19 21 17 12 7 20 6 22 10 15 2 18 20 23 5 12 25 21 3 13 17 4 16 2 15 8 11 19 7 24 14 6 1 10 18 9 22 6 20 2 5 19 7 23 10 24 1 22 12 17 16 21 18 14 15 11 8 4 9 25 3 13 13 9 10 8 12 3 25 14 23 21 11 6 17 22 7 19 1 16 24 2 18 4 5 20 15 7 25 5 8 3 16 19 14 2 11 17 12 4 15 1 23 9 24 6 18 21 22 20 13 10 18 21 3 14 1 5 6 16 9 13 11 24 22 19 4 17 2 10 20 12 25 8 7 15 23 3 20 25 9 6 17 10 23 12 13 7 2 22 16 24 15 19 11 1 21 5 4 8 18 14 23 9 17 15 16 18 21 3 2 14 12 11 1 22 4 24 20 8 5 7 25 6 13 19 10 25 13 21 7 24 18 3 5 15 6 17 19 22 8 23 16 14 11 2 9 20 1 12 4 10 18 17 4 19 6 9 10 13 2 3 7 22 14 5 16 23 12 24 8 11 20 1 15 25 21 14 5 11 25 20 1 7 13 22 21 24 23 15 10 2 16 19 17 9 4 12 18 8 3 6 21 22 13 8 17 19 16 12 15 7 23 10 4 6 2 11 9 18 1 20 3 25 5 14 24 24 3 4 25 2 9 16 10 5 18 21 12 15 17 11 7 6 20 1 13 22 14 19 8 23 5 11 17 21 16 10 23 22 14 7 24 3 8 12 20 18 4 1 15 13 25 19 6 9 2 6 7 22 4 24 11 5 21 1 19 2 17 9 10 25 18 12 15 23 20 13 3 8 14 16 18 8 10 24 20 12 22 25 14 16 5 7 17 4 3 21 1 2 23 9 13 15 11 6 19 10 12 5 20 4 8 7 14 17 23 9 22 24 1 25 18 6 19 15 21 2 16 3 11 13 12 7 6 24 19 15 11 20 13 25 4 21 8 10 18 14 9 5 1 17 16 3 22 23 2 16 15 7 2 3 18 6 24 13 9 17 25 12 11 8 4 23 19 21 20 14 10 22 1 5 18 23 20 9 1 6 22 21 17 19 2 12 15 4 24 3 7 14 10 11 5 25 13 16 8 7 12 2 24 17 10 9 18 21 25 19 1 15 20 5 6 22 4 8 11 16 23 14 3 13 6 16 19 17 24 25 5 21 3 13 22 9 4 23 15 12 1 14 2 11 20 8 7 18 10 22 18 25 14 21 6 1 20 3 9 12 13 2 10 11 23 19 17 7 16 15 5 8 4 24 9 4 22 14 20 24 19 3 16 5 21 1 8 13 25 7 17 10 23 6 15 11 2 18 12 8 23 14 3 24 9 1 4 5 17 19 16 25 21 10 11 20 2 22 12 15 13 18 7 6 19 20 9 8 22 11 13 10 24 1 17 25 5 14 23 3 21 2 18 6 7 15 12 4 16 15 13 6 1 19 22 18 21 16 23 17 11 3 12 10 2 24 14 7 20 5 25 4 9 8 9 20 5 3 21 19 14 17 10 7 24 11 18 4 1 23 15 2 25 8 13 22 16 12 6 7 13 2 15 11 5 12 4 3 8 21 24 17 20 10 23 1 25 18 22 19 6 14 16 9
13 8 2 16 12 19 10 25 3 11 15 20 OXXOO OOXOX XXXOX XOOXX OOOOX status: OK 3 1 19 14 12 10 15 21 5 7 8 24 XOXOX OXXOX OXOXX OOOXO XOOXO status: OK 4 16 5 21 18 10 12 13 11 15 17 25 OOOXX OOOOX XXXOX XXXOO XOOOX status: OK 6 13 10 17 25 4 15 3 5 9 14 16 OOXXX XOOXX OOXXX XXOOO OOOOX status: OK 7 23 17 4 15 12 13 1 3 11 14 24 XOXXO OXOOO XXXXX OXOOO OOXXO status: OK 10 20 2 1 4 25 23 13 3 11 16 21 XXXXO OOOOX XOXOO XOOOX XOXOX status: OK 2 16 8 14 25 13 5 11 1 6 9 23 XXOOX XOXXO XOXXO XOOOO OOXOX status: OK 25 9 17 10 13 6 2 11 16 18 19 21 OXOOO XOOXX XOXOO XXXXO XOOOX status: OK 16 11 2 15 24 7 18 12 17 3 13 25 OXXOO OXOOO XXXOX XXXOO OOOXX status: OK 19 13 22 2 10 16 17 12 1 5 6 21 XXOOX XOOOX OXXOO XXOXO XXOOO status: OK 4 22 16 20 13 6 15 3 5 8 10 21 OOXXX XOXOX OOXOX XOOOX XXOOO status: OK 2 9 24 15 17 14 13 6 11 7 20 21 OXOOO XXOXO XOXXX OXOOX XOOXO status: OK 13 10 17 1 21 11 9 6 7 12 20 22 XOOOO XXOXX XXXOO OXOOX XXOOO status: OK 7 11 4 17 24 3 20 13 18 14 22 23 OOXXO OXOOO XOXXO OXXOX OXXXO status: OK 21 18 5 3 9 7 13 22 6 11 12 24 OOXOX XXOXO XXXOO OOXOO XXOXO status: OK 16 15 6 7 14 17 23 3 2 4 18 24 OXXXO XXOOO OOOXX XXXOO OOXXO status: OK 8 21 19 4 2 15 6 1 5 7 10 24 XXOXX XXXOX OOOOX OOOXO XOOXO status: OK 9 22 6 13 18 25 21 5 3 8 11 16 OOXOX XOXXO XOXOO XOXOO XXOOX status: OK 1 19 13 21 20 22 8 6 12 15 17 18 XOOOO XOXOO OXXOX OXXXX XXOOO status: OK 25 18 3 5 14 7 1 4 10 15 21 24 XOXXX OXOOX OOOXX OOXOO XOOXX status: OK 4 21 3 23 7 15 13 19 10 12 14 17 OOXXO OXOOX OXXXX OXOXO XOXOO status: OK 16 19 17 6 22 10 15 2 18 7 12 20 OXOOO XXOOX OXOOX XXXXX OXOOO status: OK 14 1 10 18 9 22 6 7 8 11 19 24 XOOOO XXXXX XOOXO OOXXO OXOXO status: OK 17 18 11 9 25 3 13 4 8 14 15 21 OOXXO OOXXO XOXXX OXXOO XOOOX status: OK 7 16 24 2 18 4 5 20 15 1 19 22 XXOXX OXOOO OOOOX XOXXX OXOXO status: OK 1 9 24 21 22 20 13 10 6 15 18 23 XOOOO XOOXX OOXOX OOXOX XXXXO status: OK 11 4 17 2 20 25 7 15 23 8 10 12 OXOXO OXXOX XXOOX OXOOX OOXOX status: OK 22 21 5 4 8 18 14 1 11 15 19 24 XOOXX OOXOO XOOXX OOXXO XXOXO status: OK 5 7 25 6 13 19 10 4 8 20 22 24 OOOXX XXXOX OOXOO OOOXX OXOXX status: OK 23 9 20 1 12 4 10 2 8 11 14 16 XXOXO OOXXX XXOXO XOOOX OOXOO status: OK 12 24 8 20 1 15 25 21 5 11 16 23 XOOOX OOXOO XXOOX XOOOX XOXXX status: OK 23 10 9 4 12 18 3 6 8 16 17 19 OOXXO XOXXX OXOOO XXXXO OOXOO status: OK 2 9 1 20 3 25 5 14 24 6 11 18 XXXOX XOOXO XOOXO OOXOX OOOXX status: OK 20 1 13 22 14 19 8 23 6 7 11 17 XOOOO XXXOO XOXXO OXOXX OXXOO status: OK 13 25 19 6 9 2 1 4 12 15 18 20 XXOXO XOOXO OXXOX OOXXX OOOOX status: OK 12 23 20 13 3 8 14 16 10 15 18 25 OOXOO OOXOX OXXXX XOXOX OOXOX status: OK 2 23 9 13 15 11 6 19 1 3 4 21 XXXXO XOOXO XOXOX OOOXO XOXOO status: OK 6 19 15 21 2 16 3 11 13 1 18 25 XXXOO XOOOO XOXOX XOXXO XOOOX status: OK 14 9 5 17 16 23 2 1 3 10 18 22 XXXOX OOOXX OOOXO XXXOO OXXOO status: OK 23 20 14 10 22 1 5 4 8 11 19 21 XOOXX OOXOX XOOXO OOOXX XXXOO status: OK 7 14 5 25 13 16 8 3 4 10 11 24 OOXXX OXXOX XOXXO XOOOO OOOXX status: OK 5 22 8 16 23 14 3 13 4 6 11 20 OOXXX XOXOO XOXXO XOOOX OXXOO status: OK 9 23 1 14 2 11 7 18 10 8 12 20 XXOOO OXXXX XXOXO OOXOX OOXOO status: OK 7 16 15 5 8 4 24 10 11 17 19 23 OOOXX OXXOX XOOOX XXOXO OOXXO status: OK 19 25 17 23 6 15 11 2 18 12 7 10 OXOOO XXOOX XXOOX OXXXO OOXOX status: OK 19 25 2 22 15 13 18 7 6 11 12 20 OXOOO XXOOO XXXOX OOXXX OXOOX status: OK 21 18 7 15 12 4 16 2 3 6 14 23 OXXXO XXOOO OXOXX XOXOO XOXOO status: BLAD 11 14 7 20 25 4 9 8 2 5 10 24 OXOXX OXXXX XOOXO OOOOX OOOXX status: OK 4 2 25 13 22 16 12 6 1 8 15 23 XXOXO XOXOO OXXOX XOOOO OXXOX status: OK 1 25 18 22 14 16 9 6 10 19 20 23 XOOOO XOOXX OOOXO XOXXX OXXOX status: OK