Submission #842767

#TimeUsernameProblemLanguageResultExecution timeMemory
842767_Avocado_Self Study (JOI22_ho_t2)C++14
0 / 100
420 ms5144 KiB
#include <bits/stdc++.h>
#define int int64_t
using namespace std;

int n, m;

int up(int a, int b){
	int ret = a/b;
	if(a%b) ++ret;
	return ret;
}

int check(int x, auto&a, auto&b){
	int extra = 0;
	for(int i = 0; i<n; ++i){
		int days = up(x, a[i]);
		if(days <= m) extra -= (m-days);
		else{
			int rest = x - (m*a[i]);
			assert(rest > 0);
			int extra_days = up(rest, b[i]);
			assert(extra_days > 0);
			extra += extra_days;
		}
	}
	
	if(extra <= 0) return 1;
	return 0;
}
			

int bsearch(auto&a, auto&b){
	int l = -1;
	int r = 1e18+18;
	
	while(r-l > 1){
		int x = (r+l)/2;
		
		if(check(x, a, b)) l = x;
		else r = x;
	}
	
	return l;
}

signed main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	//freopen("input.in", "r", stdin);
	//freopen("output.out", "w", stdout);
	
	cin>>n>>m;
	
	vector<int>a(n);
	for(auto&u: a) cin>>u;
	vector<int>b(n);
	for(auto&u: b) cin>>u;
	
	for(int i = 0; i<n; ++i){
		if(a[i] < b[i]) a[i] = b[i];
	}
	
	cout<<bsearch(a, b);
	
	cout<<'\n';
}

Compilation message (stderr)

Main.cpp:13:18: warning: use of 'auto' in parameter declaration only available with '-fconcepts-ts'
   13 | int check(int x, auto&a, auto&b){
      |                  ^~~~
Main.cpp:13:26: warning: use of 'auto' in parameter declaration only available with '-fconcepts-ts'
   13 | int check(int x, auto&a, auto&b){
      |                          ^~~~
Main.cpp:32:13: warning: use of 'auto' in parameter declaration only available with '-fconcepts-ts'
   32 | int bsearch(auto&a, auto&b){
      |             ^~~~
Main.cpp:32:21: warning: use of 'auto' in parameter declaration only available with '-fconcepts-ts'
   32 | int bsearch(auto&a, auto&b){
      |                     ^~~~
#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...