제출 #528054

#제출 시각아이디문제언어결과실행 시간메모리
528054amukkalirSelf Study (JOI22_ho_t2)C++17
25 / 100
98 ms6220 KiB
#include <bits/stdc++.h> 
using namespace std; 
typedef long long ll; 

#define prn printf
#define scn scanf

const int nax = 3e5; 
int n, m; 
ll a[nax+5], b[nax+5]; 

unsigned long long updiv(ll a, ll b) {
    ll ret = a/b; 
    if(ret*b < a) ret++; 
    return ret; 
}

bool ok (ll x) {
    unsigned long long cnt = 0;
    for(int i=0; i<n; i++) {
        cnt += updiv(x, a[i]); 
        if(cnt > n*m) return false; 
    }
    return cnt <= n*m; 
}

signed main () {
    scn("%d%d", &n,&m); 
    for(int i=0; i<n; i++) scn("%lld", &a[i]); 
    for(int i=0; i<n; i++) scn("%lld", &b[i]); 
    
    ll ans = 0; 
    ll lo = 0, hi = 1e18; 
    while(lo <= hi) {
        ll mid = (lo+hi)>>1; 
        if(ok(mid)) {
            ans = mid; 
            lo = mid+1; 
        } else hi = mid-1; 
    }

    prn("%lld", ans); 
}

/*
dari 3e5 slot 
buat setiap mapel mau study berapa kali 
*/

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'bool ok(ll)':
Main.cpp:22:16: warning: comparison of integer expressions of different signedness: 'long long unsigned int' and 'int' [-Wsign-compare]
   22 |         if(cnt > n*m) return false;
      |            ~~~~^~~~~
Main.cpp:24:16: warning: comparison of integer expressions of different signedness: 'long long unsigned int' and 'int' [-Wsign-compare]
   24 |     return cnt <= n*m;
      |            ~~~~^~~~~~
Main.cpp: In function 'int main()':
Main.cpp:28:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   28 |     scn("%d%d", &n,&m);
      |        ^
Main.cpp:29:31: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   29 |     for(int i=0; i<n; i++) scn("%lld", &a[i]);
      |                               ^
Main.cpp:30:31: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     for(int i=0; i<n; i++) scn("%lld", &b[i]);
      |                               ^
#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...