Submission #768077

#TimeUsernameProblemLanguageResultExecution timeMemory
768077lollipopSelf Study (JOI22_ho_t2)C++17
0 / 100
283 ms10804 KiB
#include<bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include <ext/rope> #define int long long #define pb push_back #define s second #define f first #define pf push_front #define inf 1000000000000000000 #define bitebi __builtin_popcountll #define FOR( i , n ) for( int i = 0 ; i < n ; i ++ ) #define YES cout <<"YES\n" #define NO cout << "NO\n" #define debug cout << "Here Fine" << endl ; #define pr pair < int , int > #define fbo find_by_order // returns iterator #define ook order_of_key // returns strictly less numbers than key using namespace std ; //#pragma GCC optimize("Ofast") //#pragma GCC target("avx,avx2,fma") using namespace __gnu_pbds; using namespace __gnu_cxx; #define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> const double Pi=acos(-1.0); const double EPS=1E-8; const int mod = 1000000007 ; const int mod1 = 998244353 ; const int N = 3e5 + 10 ; mt19937 R(time(0)); map < int , int > ma , ma1 ; int a[ N ] , b[ N ] , n , m ; int check( int mid ){ int lf = m * n ; FOR( i , n ){ int nd = 0 , gn = mid ; if( a[ i ] * m <= gn ){ nd += m ; gn = gn - a[ i ] * m ; } else{ nd = nd + ( gn + a[ i ] - 1 ) / a[ i ] ; gn = 0 ; } if( gn != 0 ){ nd = nd + ( gn + b[ i ] - 1 ) / b[ i ] ; } lf = lf - nd ; } if( lf >= 0 ) return 1 ; return -1 ; } void solve(){ cin >> n >> m ; FOR( i , n ) cin >> a[ i ] ; FOR( i , n ){ cin >> b[ i ] ; a[ i ] = max( a[ i ] , b[ i ] ) ; } int ans = 0 , l = 0 , r = inf ; while( l < r ){ int mid = ( l + r ) / 2 ; if( check( mid ) == 1 ){ ans = max( ans , mid ) ; l = mid + 1 ; } else r = mid ; } if( check( l ) == 1 ) ans = max( ans , l ) ; if( check( r ) == 1 ) ans = max( ans , r ) ; cout << ans << "\n" ; } signed main() { ios_base::sync_with_stdio(0),cin.tie(NULL),cout.tie(NULL); int t = 1 ;// cin >> t ; while( t -- ){ solve() ; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...