제출 #699071

#제출 시각아이디문제언어결과실행 시간메모리
699071dkblossomSelf Study (JOI22_ho_t2)C++14
0 / 100
312 ms10828 KiB
#include<bits/stdc++.h>
using namespace std;

#pragma gcc optimize('ofast','unroll-loops')

#define endl '\n'
#define ff first
#define ss second
#define pb emplace_back
#define mp make_pair
#define all(x) x.begin(),x.end()
#define sz(x) (int)x.size()
#define rep(a,b,c) for(int a=b;a<c;a++)

typedef long long ll;
typedef pair<int,int> pii;
typedef vector<int> vi;

const ll maxn = 300005;
const ll maxm = 200005;
const ll mod = 1000000007;

void solve(){
	int n, m;
	ll arr[maxn];
	ll brr[maxn];

	cin >> n >> m;
	rep(i,0,n) cin >> arr[i];
	rep(i,0,n) cin >> brr[i], arr[i] = max(arr[i],brr[i]);

	ll l = 0;
	ll r = LLONG_MAX/2-1;

	while(l+1<r){
		ll mid = (l+r>>1);
		ll ac = 0;
		//cout<<mid<<endl;
		rep(i,0,n){
			if(arr[i]*m>=mid) ac -= max(0ll,m-mid/arr[i]-(mid%arr[i]?1:0));
			else ac += (mid-arr[i]*m)/brr[i]+((mid-arr[i]*m)%brr[i]?1:0);
			//cout << ac << ' ';
		}//cout<<endl;
		if(ac>0) r = mid;
		else l = mid;
	}

	//cout<<(-1)/2<<endl;//int mid=18,ac=0;rep(i,0,n){if(arr[i]*m>=mid)ac-=m-(mid-1)/arr[i]-1;else ac+=(mid-arr[i]*m-1)/brr[i]+1;}cout<<ac<<endl;

	cout << l << endl;
}

int main(){
	//freopen("input.txt","r",stdin);
	//freopen("sol.txt","w",stdout);
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	int t = 1;
	//cin >> t;
	while(t--) solve();
}

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

Main.cpp:4: warning: ignoring '#pragma gcc optimize' [-Wunknown-pragmas]
    4 | #pragma gcc optimize('ofast','unroll-loops')
      | 
Main.cpp: In function 'void solve()':
Main.cpp:36:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   36 |   ll mid = (l+r>>1);
      |             ~^~
#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...