洛谷P4653
我去,第一次独立AC绿题
这b题好多Checkpoint
点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
double ans = 0;
double cnta = 0;
double cntb = 0;
int pa = 0, pb = 0;
double cost = 0;
vector<double>a(N, -0x3f3f3f3f);
vector<double>b(N, -0x3f3f3f3f);
bool cmp(const float a, const float b) {
return a > b;
}
int main() {
int n; cin >> n;
for(int i = 0; i < n; i++) {
cin >> a[i] >> b[i];
}
sort(a.begin(), a.begin()+n, cmp);
sort(b.begin(), b.begin()+n, cmp);
while(pa <= n && pb <= n) {//我不知道为什么不能是小于,用小于号会有一个checkpoint过不去
if(cnta >= cntb) {
cntb += b[pb];
pb++;
} else {
cnta += a[pa];
pa++;
}
cost = pa + pb;
ans = max(ans, min(cnta - cost, cntb - cost));
}
cout << fixed << setprecision(4) << ans;
return 0;
}

浙公网安备 33010602011771号