fork download
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. //package sepchallenge13;
  6.  
  7. import java.io.IOException;
  8.  
  9. /**
  10.  *
  11.  * @author puneet
  12.  */
  13. class MlChef {
  14. public static void main(String[] args) throws IOException {
  15. int s[][],inf[][],n,h[],i,j,k,a,x,q,l,c[];
  16. java.io.BufferedReader in = new java.io.BufferedReader (new java.io.InputStreamReader (System.in));
  17. n=Integer.parseInt(in.readLine());
  18. h=new int[n+1];
  19. c=new int[n+1];
  20. s=new int[n+1][n+1];
  21. inf=new int[n+1][n+1];
  22. for(i=0;i<n;i++)
  23. s[0][i]=i+1;
  24. s[0][n]=n;
  25. inf[0][n]=0;
  26. String tmp[];
  27. for(i=1;i<=n;i++)
  28. {
  29. tmp=in.readLine().split(" ");
  30. h[i]=Integer.parseInt(tmp[0]);
  31. j=Integer.parseInt(tmp[1]);
  32. if(j!=0)
  33. {
  34. inf[i][inf[i][n]++]=j;
  35. s[j][s[j][n]++]=i;
  36. }
  37. }
  38. for(i=n-1;i>=1;i--)
  39. {
  40. if(s[i][0]!=0)
  41. {
  42. for(j=1;j<i;j++)
  43. {
  44. for(k=0;k<s[j][n];k++)
  45. {
  46. if(s[j][k]==i)
  47. {
  48. for(l=0;l<s[i][n];l++)
  49. {
  50. s[j][s[j][n]++]=s[i][l];
  51. }
  52. break;
  53. }
  54. }
  55. }
  56. }
  57. }
  58. for(i=0;i<=n;i++)
  59. c[i]=s[i][n];
  60. for(i=1;i<=n;i++)
  61. {
  62. if(inf[i][0]!=0)
  63. {
  64. for(j=n;j>i;j--)
  65. {
  66. for(k=0;k<inf[j][n];k++)
  67. {
  68. if(inf[j][k]==i)
  69. {
  70. for(l=0;l<inf[i][n];l++)
  71. {
  72. inf[j][inf[j][n]++]=inf[i][l];
  73. }
  74. break;
  75. }
  76. }
  77. }
  78. }
  79. }
  80. // for(i=0;i<=n;i++)
  81. // {
  82. // for(j=0;j<inf[i][n];j++)
  83. // System.out.print(inf[i][j]+" ");
  84. // System.out.println();
  85. // }
  86. q=Integer.parseInt(in.readLine());
  87. while(q>0)
  88. {
  89. tmp=in.readLine().split(" ");
  90. a=Integer.parseInt(tmp[1]);
  91. if("1".equals(tmp[0]))
  92. {
  93. x=Integer.parseInt(tmp[2]);
  94. for(i=0;i<c[a] && s[a][n]>0;i++)
  95. {
  96. if(h[s[a][i]]>0)
  97. {
  98. h[s[a][i]]=h[s[a][i]]-x;
  99. if(h[s[a][i]]<=0)
  100. {
  101. for(j=0;j<inf[s[a][i]][n];j++)
  102. {
  103. s[inf[s[a][i]][j]][n]--;
  104. //s[0][n]--;
  105. }
  106. s[0][n]--;
  107. }
  108. }
  109. }
  110. }
  111. else
  112. {
  113. // for(j=1;j<=n;j++)
  114. // System.out.print(h[j]+" ");
  115. System.out.println(s[a][n]);
  116. }
  117. q--;
  118. }
  119. }
  120. }
Runtime error #stdin #stdout #stderr 0.59s 380224KB
stdin
100000
stdout
Standard output is empty
stderr
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at MlChef.main(Main.java:20)