fork download
  1. #pragma GCC optimize ("Ofast")
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. void*wmem;
  5. char memarr[96000000];
  6. template<class T> inline void walloc1d(T **arr, int x, void **mem = &wmem){
  7. static int skip[16] = {0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
  8. (*mem) = (void*)( ((char*)(*mem)) + skip[((unsigned long long)(*mem)) & 15] );
  9. (*arr)=(T*)(*mem);
  10. (*mem)=((*arr)+x);
  11. }
  12. template<class T> inline void walloc1d(T **arr, int x1, int x2, void **mem = &wmem){
  13. walloc1d(arr, x2-x1, mem);
  14. (*arr) -= x1;
  15. }
  16. template<class T1> void sortA_L(int N, T1 a[], void *mem = wmem){
  17. sort(a, a+N);
  18. }
  19. template<class T1> void rsortA_L(int N, T1 a[], void *mem = wmem){
  20. sortA_L(N, a, mem);
  21. reverse(a, a+N);
  22. }
  23. inline int my_getchar_unlocked(){
  24. static char buf[1048576];
  25. static int s = 1048576;
  26. static int e = 1048576;
  27. if(s == e && e == 1048576){
  28. e = fread_unlocked(buf, 1, 1048576, stdin);
  29. s = 0;
  30. }
  31. if(s == e){
  32. return EOF;
  33. }
  34. return buf[s++];
  35. }
  36. inline void rd(int &x){
  37. int k;
  38. int m=0;
  39. x=0;
  40. for(;;){
  41. k = my_getchar_unlocked();
  42. if(k=='-'){
  43. m=1;
  44. break;
  45. }
  46. if('0'<=k&&k<='9'){
  47. x=k-'0';
  48. break;
  49. }
  50. }
  51. for(;;){
  52. k = my_getchar_unlocked();
  53. if(k<'0'||k>'9'){
  54. break;
  55. }
  56. x=x*10+k-'0';
  57. }
  58. if(m){
  59. x=-x;
  60. }
  61. }
  62. struct MY_WRITER{
  63. char buf[1048576];
  64. int s;
  65. int e;
  66. MY_WRITER(){
  67. s = 0;
  68. e = 1048576;
  69. }
  70. ~MY_WRITER(){
  71. if(s){
  72. fwrite_unlocked(buf, 1, s, stdout);
  73. }
  74. }
  75. }
  76. ;
  77. MY_WRITER MY_WRITER_VAR;
  78. void my_putchar_unlocked(int a){
  79. if(MY_WRITER_VAR.s == MY_WRITER_VAR.e){
  80. fwrite_unlocked(MY_WRITER_VAR.buf, 1, MY_WRITER_VAR.s, stdout);
  81. MY_WRITER_VAR.s = 0;
  82. }
  83. MY_WRITER_VAR.buf[MY_WRITER_VAR.s++] = a;
  84. }
  85. inline void wt_L(char a){
  86. my_putchar_unlocked(a);
  87. }
  88. inline void wt_L(int x){
  89. int s=0;
  90. int m=0;
  91. char f[10];
  92. if(x<0){
  93. m=1;
  94. x=-x;
  95. }
  96. while(x){
  97. f[s++]=x%10;
  98. x/=10;
  99. }
  100. if(!s){
  101. f[s++]=0;
  102. }
  103. if(m){
  104. my_putchar_unlocked('-');
  105. }
  106. while(s--){
  107. my_putchar_unlocked(f[s]+'0');
  108. }
  109. }
  110. int N;
  111. int A[100];
  112. int B[100];
  113. int main(){
  114. int i;
  115. wmem = memarr;
  116. int res = 0;
  117. int tot = 0;
  118. rd(N);
  119. {
  120. int Lj4PdHRW;
  121. for(Lj4PdHRW=(0);Lj4PdHRW<(N);Lj4PdHRW++){
  122. rd(A[Lj4PdHRW]);
  123. }
  124. }
  125. {
  126. int e98WHCEY;
  127. for(e98WHCEY=(0);e98WHCEY<(N);e98WHCEY++){
  128. rd(B[e98WHCEY]);
  129. }
  130. }
  131. for(i=(0);i<(N);i++){
  132. A[i] -= B[i];
  133. }
  134. rsortA_L(N, A);
  135. for(i=(0);i<(N);i++){
  136. if(tot + A[i] >= 0){
  137. res++;
  138. tot += A[i];
  139. }
  140. }
  141. wt_L(res);
  142. wt_L('\n');
  143. return 0;
  144. }
  145. // cLay version 20201123-1
  146.  
  147. // --- original code ---
  148. // int N, A[100], B[100];
  149. // {
  150. // int res = 0, tot = 0;
  151. // rd(N,A(N),B(N));
  152. // rep(i,N) A[i] -= B[i];
  153. // rsortA(N, A);
  154. // rep(i,N) if(tot + A[i] >= 0) res++, tot += A[i];
  155. // wt(res);
  156. // }
  157.  
Time limit exceeded #stdin #stdout 5s 4528KB
stdin
Standard input is empty
stdout
Standard output is empty