求助!Subtask #4一直WA最后一个点
查看原帖
求助!Subtask #4一直WA最后一个点
265453
strange757楼主2022/7/4 21:37

rt,不知道原因。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#define int long long
using namespace std;
const int N = 3e5 + 5;
int n, m, ans, f[N], a[N], b[N], s[N];
int l, r;
bool check(int x){
    int cnt = 0;
    for(int i = 1; i <= n; i++){
        if(f[i] > x) cnt += (f[i] - x)/a[i];
        if(f[i] < x) cnt -= (x-1-f[i])/b[i] + 1;
    }
    if(cnt >= 0) return 1;
    return 0;
}
signed main(){
    scanf("%lld%lld", &n, &m);
    for(int i = 1; i <= n; i++) scanf("%lld", &a[i]);
    for(int i = 1; i <= n; i++) scanf("%lld", &b[i]), a[i] = max(a[i], b[i]);
    for(int i = 1; i <= n; i++){
        f[i] = a[i]*m;
        r = max(r, f[i]);
    }
    r += 10;
    while(l <= r){
        int mid = (l + r) >> 1;
        if(check(mid)) l = mid + 1, ans = mid;
        else r = mid - 1;
    }
    printf("%lld", ans);
    return 0;
}
2022/7/4 21:37
加载中...