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 |
|
|
| 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 |