fork(3) download
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5. inline int get_input()
  6. {
  7. int num=0,sign=1;
  8. char d = getchar();
  9. if(d == '-')
  10. sign = -1;
  11. while((d<'0'||d>'9') && d!=EOF&&d!='-')
  12. d = getchar();
  13. if(d == '-')
  14. sign = -1, d=getchar();
  15. while(d>='0' && d<='9')
  16. {
  17. num=(num<<3)+(num<<1)+(d-'0');
  18. d=getchar();
  19. }
  20. return sign*num;
  21. }
  22. int arr[101];
  23. int main() {
  24. int T,L,K,i,j,m,u,v,min,count;
  25. scanf("%d",&T);
  26. while(T--)
  27. {
  28. L=get_input();
  29. K=get_input();
  30. m=L;
  31. while(L--)
  32. {
  33. u=get_input();
  34. v=get_input();
  35. arr[u]=v;
  36. }
  37. while(K--)
  38. {
  39. u=get_input();
  40. v=get_input();
  41. arr[u]=v;
  42. }
  43. min=32767;
  44. while(m--)
  45. {
  46. count = 0;
  47. for(i=1;i<=100;)
  48. {
  49. for(j=i+1;j<(i+7);j++)
  50. {
  51. if(arr[j]>j)
  52. {
  53. v=arr[j];
  54. arr[j] = 0;
  55. j=v;
  56. break;
  57. }
  58. if(arr[j]<j)
  59. {
  60. if(j==i+6)
  61. {
  62. i=i-1;
  63. break;
  64. }
  65. continue;
  66. }
  67. }
  68. count +=1;
  69. i=j;
  70. }
  71. if(min>count)
  72. min = count;
  73. }
  74. printf("%d\n",min);
  75. /*
  76.   for(i=1;i<=100;i++)
  77.   {
  78.   printf("%d ",arr[i]);
  79.   }
  80.   */
  81. }
  82. return 0;
  83. }
  84.  
Success #stdin #stdout 0s 2056KB
stdin
3
3,7
32,62 42,68 12,98
95,13 97,25 93,37 79,27 75,19 49,47 67,17
5,8
32,62 44,66 22,58 34,60 2,90
85,7 63,31 87,13 75,11 89,33 57,5 71,15 55,25
4,9
8,52 6,80 26,42 2,72
51,19 39,11 37,29 81,3 59,5 79,23 53,7 43,33 77,21
stdout
3
3
5