fork(1) download
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<queue>
  4. #include<stack>
  5. using namespace std;
  6. int considered[12];
  7. bool occupied[25],check[25];
  8. queue <int> john,temp;
  9. void setConsidered(int fieldId)
  10. {
  11. bool alreadyPushed=false;
  12. considered[fieldId/5]++;
  13. considered[fieldId%5+5]++;
  14. if(considered[fieldId/5]==5||considered[fieldId%5+5]==5)
  15. {
  16. john.push(fieldId);
  17. occupied[fieldId]=true;
  18. alreadyPushed=true;
  19.  
  20. check[fieldId]=true;
  21. //cout<<"I'm pushing "<<fieldId+1<<endl;
  22.  
  23. }
  24.  
  25. //cout<<fieldId/5+1<<' '<<fieldId%5+6<<' ';
  26.  
  27. if(fieldId==8)
  28. {
  29. considered[10]++;
  30. considered[11]++;
  31. if(considered[10]==5&&!alreadyPushed)
  32. {
  33. john.push(fieldId);
  34. occupied[fieldId]=true;
  35. alreadyPushed=true;
  36.  
  37. check[fieldId]=true;
  38. //cout<<"I'm pushing "<<fieldId+1<<endl;
  39.  
  40. }
  41. if(considered[11]==5&&!alreadyPushed)
  42. {
  43. john.push(fieldId);
  44. occupied[fieldId]=true;
  45. alreadyPushed=true;
  46.  
  47. check[fieldId]=true;
  48. //cout<<"I'm pushing "<<fieldId+1<<endl;
  49.  
  50. }
  51. }
  52. else if(fieldId==0||fieldId==3||fieldId==15||fieldId==24)
  53. {
  54. considered[10]++;
  55. if(considered[10]==5&&!alreadyPushed)
  56. {
  57. john.push(fieldId);
  58. occupied[fieldId]=true;
  59. alreadyPushed=true;
  60.  
  61. check[fieldId]=true;
  62. //cout<<"I'm pushing "<<fieldId+1<<endl;
  63.  
  64. }
  65.  
  66. //cout<<11;
  67.  
  68. }
  69. else if(fieldId==4||fieldId==12||fieldId==16||fieldId==20)
  70. {
  71.  
  72. //cout<<fieldId+1<<endl;
  73.  
  74. considered[11]++;
  75. if(considered[11]==5&&!alreadyPushed)
  76. {
  77. john.push(fieldId);
  78. occupied[fieldId]=true;
  79. alreadyPushed=true;
  80.  
  81. check[fieldId]=true;
  82. //cout<<"I'm pushing "<<fieldId+1<<endl;
  83.  
  84. }
  85.  
  86. //cout<<12;
  87.  
  88. }
  89.  
  90. //cout<<fieldId/5+1<<"->"<<considered[fieldId/5]<<endl
  91. // <<fieldId%5+6<<"->"<<considered[fieldId%5+5]<<"\n\n";
  92.  
  93. }
  94. void ilustrate()
  95. {
  96. int x,y=0,count;
  97. bool tab[5][5];
  98. string status="OK\n";
  99. for(int i=0;i<5;i++)for(int j=0;j<5;j++)tab[i][j]=false;
  100. for(int i=0;i<25;i++)
  101. {
  102. if(i%5==0)
  103. {
  104. cout<<endl;
  105. x=0;
  106. y++;
  107. }
  108. if(check[i])cout<<'X';
  109. else
  110. {
  111. cout<<'O';
  112. tab[y][x]=true;
  113. }
  114. x++;
  115. }
  116. for(int i=0;i<5;i++)
  117. {
  118. count=0;
  119. for(int j=0;j<5;j++)if(tab[j][i])count++;
  120. if(count==5)
  121. {
  122. status="BLAD\n";
  123. break;
  124. }
  125. }
  126. count=0;
  127. for(int i=0;i<5;i++)if(tab[i][i])count++;
  128. if(count==5)status="BLAD\n";
  129. count=0;
  130. for(int i=0;i<5;i++)if(tab[i][5-i])count++;
  131. if(count==5)status="BLAD\n";
  132. cout<<"\nstatus: "<<status;
  133. }
  134. int main()
  135. {
  136.  
  137. //for(int i=0;i<25;i++)check[i]=false;
  138. //ilustrate();
  139.  
  140. int t,margaretsMoves[25],result[12];
  141. scanf("%d",&t);
  142. for(int i=0;i<t;i++)
  143. {
  144.  
  145. for(int j=0;j<25;j++)check[j]=false;
  146.  
  147. for(int j=0;j<12;j++)considered[j]=0;
  148. for(int j=0;j<25;j++)occupied[j]=false;
  149. for(int j=0;j<25;j++)scanf("%d",&margaretsMoves[j]);
  150. for(int j=0;j<25;j++)setConsidered(margaretsMoves[j]-1);
  151. while(!john.empty())
  152. {
  153. printf("%d ",john.front()+1);
  154. //temp.push(john.top());
  155. //occupied[john.top()]=true;
  156. john.pop();
  157. }
  158. int it=0,j=0;
  159. while(it<13)
  160. {
  161. if(!occupied[margaretsMoves[j]-1])
  162. {
  163. occupied[margaretsMoves[j]-1]=true;
  164. it++;
  165. }
  166. j++;
  167. }
  168. for(int j=0;j<25;j++)
  169. if(!occupied[j])
  170. {
  171. printf("%d ",j+1);
  172.  
  173. check[j]=true;
  174.  
  175. }
  176.  
  177. ilustrate();
  178.  
  179. //printf("\n");
  180. /*while(!temp.empty())
  181.   {
  182.   john.push(temp.top());
  183.   temp.pop();
  184.   }*/
  185.  
  186. /*while(!john.empty())
  187.   {
  188.   printf("%d ",john.top()+1);
  189.   john.pop();
  190.   }
  191.   printf("\n");*/
  192.  
  193. /*for(int j=0;j<24;j++)
  194.   {
  195.   if(margaretsMoves[j]==john.top())
  196.   {
  197.   //result[it]=john
  198.   john.pop();
  199.   }
  200.   }*/
  201. printf("\n");
  202. }
  203. return 0;
  204. }
  205.  
Success #stdin #stdout 0s 3440KB
stdin
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 
stdout
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