제출 #1293277

#제출 시각아이디문제언어결과실행 시간메모리
1293277MinbaevSelf Study (JOI22_ho_t2)C++20
0 / 100
100 ms13396 KiB
// #pragma GCC optimize("O3")
// #pragma GCC optimization("Ofast,unroll-loops")
// #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#include <bits/stdc++.h>
using namespace std;

#define int long long 
#define ll long long
#define FOR(i, l, r) for (int i = (l); i <= (r); i++)
#define FOD(i, r, l) for (int i = (r); i >= (l); i--)
#define fi first
#define se second
#define pii pair<int, int>

const ll mod = 1e9 + 7;
const int MAXN = 3e5 + 5;
const ll oo = 1e18 + 7;  
const int base = 10;

int n, m;
int a[MAXN], b[MAXN];
vector<pii> vec;
bool check(int mid){
	int du=0;
	for(auto [x, id]:vec){
		// cout << x << ' ' << id << '\n';
		if(x>=mid){
			int thua=x-mid;
			du+=thua/max(a[id], b[id]);
			// cout << du << ' ';
		}
		else{
			int thieu=mid-x;
			du-=(thieu+b[id]-1)/b[id];
			
		}
	}
	
	if(du < 0)return 0;
	
	return 1;
}

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    
    // freopen("test.txt", "r", stdin);
    // freopen("o2.out", "w", stdout);

    if(fopen(".inp", "r")){
        freopen(".inp", "r", stdin);
        freopen(".out", "w", stdout);
    }

    cin >> n >> m;
    FOR(i, 1, n){
    	cin >> a[i];
    }
    FOR(i, 1, n){
    	cin >> b[i];
    }
	FOR(i, 1, n){
		vec.push_back({max(a[i], b[i])*m, i});
	}
	
	int l=0, r=1e18, ans=0;
	while(l<=r){
		int mid=(l+r)/2;
		if(check(mid)){
			ans=mid;
			l=mid+1;
		}
		else{
			r=mid-1;
		}
	}
	cout << ans;
    
    return 0;
}

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

Main.cpp: In function 'int main()':
Main.cpp:54:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   54 |         freopen(".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~
Main.cpp:55:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   55 |         freopen(".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
#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...