제출 #1307933

#제출 시각아이디문제언어결과실행 시간메모리
1307933shisp1Sure Bet (CEOI17_sure)C++20
20 / 100
2092 ms576 KiB
#include <bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
const int mod = 1e9+7;
const ll inf = 1e18;
const int N = 2e5+5;
int n;
double a[N], b[N];
double best = 0;
void gen(vector<int>&v) {
    if(v.size() == n) {
        double ans1 = 0, ans2 = 0;
        for(int i = 0;i<n;i++) {
            if(v[i] == 0) continue;
            if(v[i] == 1) {
                ans1+=a[i]-1.0;
            }
            if(v[i] == 2) {
                ans1-=1.0;
            }
            if(v[i] == 3) {
                ans1+= a[i]-2.0;
            }
        }
        for(int i = 0;i<n;i++) {
            if(v[i] == 0) continue;
            if(v[i] == 1) {
                ans2-=1.0;
            }
            if(v[i] == 2) {
                ans2+=b[i]-1.0;
            }
            if(v[i] == 3) {
                ans2+= b[i]-2.0;
            }
        }
        best = max(best, min(ans1,ans2));

        return;
    }
    for(int i = 0;i<=3;i++) {
        v.pb(i);
        gen(v);
        v.pop_back();
    }
}
void solve() {
    cin >> n;
    for(int i = 0;i<n;i++) {
        cin >> a[i] >> b[i];
    }
    vector<int>v;
    gen(v);
    cout << fixed << setprecision(4) << best;
 }
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int tt=1;
    //cin >> tt;
    while(tt--) {
        solve();
    }

//



    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...