//Bismillahir-Rahmanir-Rahim
#include <bits/stdc++.h>
using namespace std;
#define flash ios_base::sync_with_stdio(0),cin.tie(0)
#define pb push_back
#define ll long long
#define ld long double
#define dbg(x) cerr << #x << " = " << x << "\n";
#define ff first
#define ss second
/*
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma comment (linker, "/stack:200000000")
#pragma GCC optimize("Ofast")
#pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
*/
const long long INF = 1e9 + 7;
const long long MOD = 1e9 + 7;
const int maxn = 1e5 + 10;
int n;
double a[maxn], b[maxn], ans, x, y, sz, ans2;
void press_F_() {
cin >> n;
for (int i = 1; i <= n; i++) {
// cin >> a[i] >> b[i];
a[i] = rand() % 1000 + 1;
b[i] = rand() % 1000 + 1;
}
sort(a + 1, a + n + 1);
sort(b + 1, b + n + 1);
reverse(a + 1, a + n + 1);
reverse(b + 1, b + n + 1);
int id1 = 0, id2 = 0;
// return;
if (n <= 1000) {
x = 0;
y = 0;
for (int i = 0; i <= n; i++) {
y = 0;
x += a[i];
for (int j = 0; j <= n; j++) {
y += b[j];
ans2 = max(ans2, min(x - i - j, y - i - j));
}
}
printf("%.4lf",(double)ans2);
return;
}
while(id1 < n || id2 < n) {
if (min(x + a[id1 + 1] - (sz + 1), y - (sz + 1)) >= min(x - (sz + 1), y + b[id2 + 1] - (sz + 1))) {
id1++;
x += a[id1];
sz++;
} else {
id2++;
y += b[id2];
sz++;
}
ans = max(ans, min(x - sz, y - sz));
}
printf("%.4lf",(double)ans);
// cout << '\n';
}
int main() {
flash;
srand(time(0));
int T = 1;
// cin >> T;
for (int i = 1; i <= T; i++) {
// cout << "Case" << " " << i << ':' << "\n";
press_F_();
}
//Respa gold 2023-2024 InshAllah
return 0;
}
/*
Maybe not today and tomorrow, but InshAllah one day I will reach expert
*/
// g++ -std=c++17 main.cpp
// ./a.out
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
0 ms |
344 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |