Submission #8239271


Source Code Expand

#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
void *wmem;
char memarr[96000000];
template<class T> inline void walloc1d(T **arr, int x, void **mem = &wmem){
  static int skip[16] = {0, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1};
  (*mem) = (void*)( ((char*)(*mem)) + skip[((unsigned long long)(*mem)) & 15] );
  (*arr)=(T*)(*mem);
  (*mem)=((*arr)+x);
}
template<class T1> void sortA_L(int N, T1 a[], void *mem = wmem){
  sort(a, a+N);
}
template<class T1> void rsortA_L(int N, T1 a[], void *mem = wmem){
  sortA_L(N, a, mem);
  reverse(a, a+N);
}
inline void rd(int &x){
  int k;
  int m=0;
  x=0;
  for(;;){
    k = getchar_unlocked();
    if(k=='-'){
      m=1;
      break;
    }
    if('0'<=k&&k<='9'){
      x=k-'0';
      break;
    }
  }
  for(;;){
    k = getchar_unlocked();
    if(k<'0'||k>'9'){
      break;
    }
    x=x*10+k-'0';
  }
  if(m){
    x=-x;
  }
}
inline void rd(long long &x){
  int k;
  int m=0;
  x=0;
  for(;;){
    k = getchar_unlocked();
    if(k=='-'){
      m=1;
      break;
    }
    if('0'<=k&&k<='9'){
      x=k-'0';
      break;
    }
  }
  for(;;){
    k = getchar_unlocked();
    if(k<'0'||k>'9'){
      break;
    }
    x=x*10+k-'0';
  }
  if(m){
    x=-x;
  }
}
inline void wt_L(char a){
  putchar_unlocked(a);
}
inline void wt_L(long long x){
  int s=0;
  int m=0;
  char f[20];
  if(x<0){
    m=1;
    x=-x;
  }
  while(x){
    f[s++]=x%10;
    x/=10;
  }
  if(!s){
    f[s++]=0;
  }
  if(m){
    putchar_unlocked('-');
  }
  while(s--){
    putchar_unlocked(f[s]+'0');
  }
}
template<class S, class T> inline S divup_L(S a, T b){
  return (a+b-1)/b;
}
int N;
long long K;
int A[200000];
int F[200000];
int main(){
  wmem = memarr;
  long long res;
  long long r;
  long long nd;
  rd(N);
  rd(K);
  {
    int Lj4PdHRW;
    for(Lj4PdHRW=(0);Lj4PdHRW<(N);Lj4PdHRW++){
      rd(A[Lj4PdHRW]);
    }
  }
  {
    int KL2GvlyY;
    for(KL2GvlyY=(0);KL2GvlyY<(N);KL2GvlyY++){
      rd(F[KL2GvlyY]);
    }
  }
  sortA_L(N,A);
  rsortA_L(N,F);
  long long Q5VJL1cS;
  long long e98WHCEY;
  long long cTE1_r3A;
  Q5VJL1cS = 0;
  e98WHCEY = 1000000000000LL;
  while(Q5VJL1cS < e98WHCEY){
    int i;
    if((Q5VJL1cS + e98WHCEY)%2==0){
      cTE1_r3A = (Q5VJL1cS + e98WHCEY) / 2;
    }
    else{
      cTE1_r3A = (Q5VJL1cS + e98WHCEY - 1) / 2;
    }
    r = K;
    for(i=(0);i<(N);i++){
      nd = (long long) A[i] * F[i] - cTE1_r3A;
      if(nd > 0){
        r -=divup_L(nd,F[i]);
      }
    }
    if(r >= 0){
      e98WHCEY = cTE1_r3A;
    }
    else{
      Q5VJL1cS = cTE1_r3A + 1;
    }
  }
  res =e98WHCEY;
  wt_L(res);
  wt_L('\n');
  return 0;
}
// cLay varsion 20191027-1

// --- original code ---
// int N; ll K; int A[2d5], F[2d5];
// {
//   ll res, r, nd;
//   rd(N,K,A(N),F(N));
//   sortA(N,A);
//   rsortA(N,F);
//   res = bsearch_min[ll,x,0,1d12][
//     r = K;
//     rep(i,N){
//       nd = (ll) A[i] * F[i] - x;
//       if(nd > 0) r -= nd /+ F[i];
//     }
//   ](r >= 0);
//   wt(res);
// }

Submission Info

Submission Time
Task E - Gluttony
User LayCurse
Language C++14 (GCC 5.4.1)
Score 500
Code Size 3155 Byte
Status AC
Exec Time 119 ms
Memory 1792 KiB

Judge Result

Set Name Sample Subtask1
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 38
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt, sub1_24.txt, sub1_25.txt, sub1_26.txt, sub1_27.txt, sub1_28.txt, sub1_29.txt, sub1_30.txt, sub1_31.txt, sub1_32.txt, sub1_33.txt, sub1_34.txt, sub1_35.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KiB
sample_02.txt AC 1 ms 256 KiB
sample_03.txt AC 1 ms 256 KiB
sub1_01.txt AC 102 ms 1792 KiB
sub1_02.txt AC 3 ms 256 KiB
sub1_03.txt AC 37 ms 768 KiB
sub1_04.txt AC 9 ms 384 KiB
sub1_05.txt AC 55 ms 1024 KiB
sub1_06.txt AC 70 ms 1152 KiB
sub1_07.txt AC 2 ms 256 KiB
sub1_08.txt AC 96 ms 1536 KiB
sub1_09.txt AC 18 ms 640 KiB
sub1_10.txt AC 21 ms 1024 KiB
sub1_11.txt AC 31 ms 1280 KiB
sub1_12.txt AC 32 ms 640 KiB
sub1_13.txt AC 15 ms 384 KiB
sub1_14.txt AC 52 ms 896 KiB
sub1_15.txt AC 29 ms 768 KiB
sub1_16.txt AC 64 ms 1152 KiB
sub1_17.txt AC 48 ms 1024 KiB
sub1_18.txt AC 98 ms 1792 KiB
sub1_19.txt AC 73 ms 1792 KiB
sub1_20.txt AC 38 ms 1792 KiB
sub1_21.txt AC 43 ms 1792 KiB
sub1_22.txt AC 82 ms 1792 KiB
sub1_23.txt AC 99 ms 1792 KiB
sub1_24.txt AC 51 ms 1792 KiB
sub1_25.txt AC 95 ms 1792 KiB
sub1_26.txt AC 91 ms 1792 KiB
sub1_27.txt AC 119 ms 1792 KiB
sub1_28.txt AC 108 ms 1792 KiB
sub1_29.txt AC 62 ms 1792 KiB
sub1_30.txt AC 99 ms 1792 KiB
sub1_31.txt AC 68 ms 1792 KiB
sub1_32.txt AC 119 ms 1792 KiB
sub1_33.txt AC 110 ms 1792 KiB
sub1_34.txt AC 2 ms 256 KiB
sub1_35.txt AC 39 ms 1024 KiB