fork(2) download
  1. /******************************************
  2.  
  3. 2015년 7월 인천광역시 교육청 모의고사
  4.  
  5. 수학영역 : A형 30번, B형 21번
  6.  
  7. 문제 알고리즘
  8.  
  9. ******************************************/
  10.  
  11. #include <stdio.h>
  12.  
  13. /*
  14.  
  15. 문제에서 주어진 정보에 의해 다음과 같이
  16. A,B,C,D에 올 수 있는 유형이 정해진다.
  17.  
  18. A->A
  19. A->B
  20.  
  21. B->C
  22. B->D
  23.  
  24. C->A
  25. C->B
  26.  
  27. D->C
  28. D->D
  29.  
  30. 이 유형마다 카운트를 설정하고 하나씩 줄여나가
  31. 맞는 유형에서 해당 값을 출력시키면 된다.
  32.  
  33. */
  34.  
  35. int last = 0;
  36. int cou = 0;
  37.  
  38. out(t)
  39. {
  40. if (t == 1) {
  41. printf("\n");
  42. return;
  43. }
  44. out(t >> 1);
  45. printf("\xa1%c", "\xdb\xdc"[t & 1]);
  46. }
  47.  
  48. outa(a,b,c,d,t)
  49. {
  50. if (!a) {
  51. if (!(a + b + c + d) && (last != (t<<1)))
  52. out(last = t<<1, cou++);
  53. return;
  54. }
  55. outa(a - 1, b, c, d, (t << 1));
  56. outb(a - 1, b, c, d, (t << 1));
  57. }
  58.  
  59. outb(a,b,c,d,t)
  60. {
  61. if (!b) {
  62. if (!(a + b + c + d) && (last != (t<<1)))
  63. out(last = t<<1, cou++);
  64. return;
  65. }
  66. outc(a, b - 1, c, d, (t << 1));
  67. outd(a, b - 1, c, d, (t << 1));
  68. }
  69.  
  70. outc(a,b,c,d,t)
  71. {
  72. if (!c) {
  73. if (!(a + b + c + d) && (last != (t<<1)+1))
  74. out(last = (t<<1)+1, cou++);
  75. return;
  76. }
  77. outa(a, b, c - 1, d, (t << 1)+1);
  78. outb(a, b, c - 1, d, (t << 1)+1);
  79. }
  80.  
  81. outd(a,b,c,d,t)
  82. {
  83. if (!d) {
  84. if (!(a + b + c + d) && (last != (t<<1)+1))
  85. out(last = (t<<1)+1, cou++);
  86. return;
  87. }
  88. outc(a, b, c, d - 1, (t << 1)+1);
  89. outd(a, b, c, d - 1, (t << 1)+1);
  90. }
  91.  
  92. int start(n,a,b,c,d)
  93. { // n = dummy
  94. cou = 0;
  95. outa(a, b, c, d, 1);
  96. outb(a, b, c, d, 1);
  97. outc(a, b, c, d, 1);
  98. outd(a, b, c, d, 1);
  99. return cou;
  100. }
  101.  
  102. int main()
  103. {
  104. printf("\n%d\n\n", start(6, 2, 1, 1, 1));
  105. printf("\n%d\n\n", start(10, 4, 2, 2, 1));
  106. return 0;
  107. }
Success #stdin #stdout 0s 2156KB
stdin
Standard input is empty
stdout
�ۡۡۡܡܡ�
�ۡۡܡܡۡ�
�ۡܡܡۡۡ�
�ܡۡۡۡܡ�
�ܡܡۡۡۡ�
5


�ۡۡۡۡۡܡۡܡܡ�
�ۡۡۡۡۡܡܡۡܡ�
�ۡۡۡۡܡۡۡܡܡ�
�ۡۡۡۡܡۡܡܡۡ�
�ۡۡۡۡܡܡۡۡܡ�
�ۡۡۡۡܡܡۡܡۡ�
�ۡۡۡܡۡۡۡܡܡ�
�ۡۡۡܡۡۡܡܡۡ�
�ۡۡۡܡۡܡܡۡۡ�
�ۡۡۡܡܡۡۡۡܡ�
�ۡۡۡܡܡۡۡܡۡ�
�ۡۡۡܡܡۡܡۡۡ�
�ۡۡܡۡۡۡۡܡܡ�
�ۡۡܡۡۡۡܡܡۡ�
�ۡۡܡۡۡܡܡۡۡ�
�ۡۡܡۡܡܡۡۡۡ�
�ۡۡܡܡۡۡۡۡܡ�
�ۡۡܡܡۡۡۡܡۡ�
�ۡۡܡܡۡۡܡۡۡ�
�ۡۡܡܡۡܡۡۡۡ�
�ۡܡۡۡۡۡۡܡܡ�
�ۡܡۡۡۡۡܡܡۡ�
�ۡܡۡۡۡܡܡۡۡ�
�ۡܡۡۡܡܡۡۡۡ�
�ۡܡۡܡܡۡۡۡۡ�
�ۡܡܡۡۡۡۡۡܡ�
�ۡܡܡۡۡۡۡܡۡ�
�ۡܡܡۡۡۡܡۡۡ�
�ۡܡܡۡۡܡۡۡۡ�
�ۡܡܡۡܡۡۡۡۡ�
�ܡۡۡۡۡۡܡۡܡ�
�ܡۡۡۡۡۡܡܡۡ�
�ܡۡۡۡۡܡۡۡܡ�
�ܡۡۡۡۡܡܡۡۡ�
�ܡۡۡۡܡۡۡۡܡ�
�ܡۡۡۡܡܡۡۡۡ�
�ܡۡۡܡۡۡۡۡܡ�
�ܡۡۡܡܡۡۡۡۡ�
�ܡۡܡۡۡۡۡۡܡ�
�ܡۡܡܡۡۡۡۡۡ�
�ܡܡۡۡۡۡۡܡۡ�
�ܡܡۡۡۡۡܡۡۡ�
�ܡܡۡۡۡܡۡۡۡ�
�ܡܡۡۡܡۡۡۡۡ�
�ܡܡۡܡۡۡۡۡۡ�
45