二分死循环
查看原帖
二分死循环
637788
kimi0705楼主2023/1/23 16:37
#include<bits/stdc++.h>
#define int long long
using namespace std;
string s;
int xa, xb, xc;//b s c
int ya, yb, yc;
int ma, mb, mc;
int money;
signed main() {
	cin >> s;
	for ( int i = 0 ; i < s.size(); i++ ) {
		if ( s[i] == 'B' ) xa++;
		if ( s[i] == 'S' ) xb++;
		if ( s[i] == 'C' ) xc++;
	}
	cin >> ya >> yb >> yc;
	cin >> ma >> mb >> mc;
	cin >> money;
	int l = 0, r = INT_MAX;
	while ( l < r ) {
		cout << l << ' ' << r << endl;
		int mid = ( l + r + 1) >> 1;
		if ( ( mid * xa - ya ) * ma + ( mid * xb - yb ) * mb + ( mid * xc - yc ) * mc <= money ) {
			l = mid;
		} else {
			r = mid - 1;
		}
	}
	cout << l;
}
2023/1/23 16:37
加载中...