답안 #865385

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
865385 2023-10-24T07:48:31 Z vjudge1 Sure Bet (CEOI17_sure) C++14
20 / 100
2 ms 2592 KB
#include <bits/stdc++.h>
#define ll long long
#define Sayan ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout)
#define all(a) a.begin() , a.end()
#define Int(a,x) a+1 , a+1+x
#define sz() size()
#define F first
#define S second
#define pb push_back
#define yes cout << "YES\n"
#define no cout << "NO\n"
#define pii pair<ll,ll>
using namespace std ;

const ll N = 2e5+5;
const ll INF = 1e18;
const ll mod = 1e9+7;

/*
ll binpow(ll a , ll b){
    if(b == 0) return 1;
    if(b%2) return binpow(a , b-1) * a % mod;
    ll c = binpow(a , b/2) % mod;
    return c*c%mod;
}
*/
double l[N],r[N];
void solve(){
	ll n;
	cin>>n;
	double mx=0;
	set<double>st1,st2;
	double sum1=0,sum2=0;
	for(ll i=1;i<=n;i++){
		cin>>l[i]>>r[i];
		sum1+=l[i];
		sum2+=r[i];
		st1.insert(l[i]);
		st2.insert(r[i]);
	}
	ll cnt1=n,cnt2=n;
	mx=max(mx,min(sum1-(n*2),sum2-(n*2)));
	sort(l+1,l+1+n);
	reverse(l+1,l+1+n);
	sort(r+1,r+1+n);
	reverse(r+1,r+1+n);
	for(double i=n*2-1;i>=2;i--){
		if(cnt1==1){
			cnt2--;
			double mn=*st2.begin();
			sum2-=mn;
			st2.erase(*st2.begin());
		}
		else if(cnt2==1){
			cnt1--;
			double mn=*st1.begin();
			sum1-=mn;
			st1.erase(*st1.begin());
		}
		else {
			if(sum1>=sum2){
				cnt1--;
				double mn=*st1.begin();
				sum1-=mn;
				st1.erase(*st1.begin());
			}
			else {
				cnt2--;
				double mn=*st2.begin();
				sum2-=mn;
				st2.erase(*st2.begin());
			}
		}
//		cout<<sum1<<" "<<sum2<<" "<<i<<"\n";
		mx=max(mx,min(sum1-i,sum2-i));
	}
	printf("%.4lf",(double)mx);
}
signed main () {
	Sayan;
	ll t=1;
	//cin>>t;
	while(t--)solve();
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 0 ms 2396 KB Output is correct
5 Correct 1 ms 2392 KB Output is correct
6 Correct 1 ms 2592 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 0 ms 2396 KB Output is correct
5 Correct 1 ms 2392 KB Output is correct
6 Correct 1 ms 2592 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 2392 KB Output is correct
9 Correct 1 ms 2392 KB Output is correct
10 Correct 0 ms 2396 KB Output is correct
11 Correct 1 ms 2396 KB Output is correct
12 Incorrect 2 ms 2396 KB Output isn't correct
13 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 2396 KB Output is correct
2 Correct 1 ms 2396 KB Output is correct
3 Correct 1 ms 2396 KB Output is correct
4 Correct 0 ms 2396 KB Output is correct
5 Correct 1 ms 2392 KB Output is correct
6 Correct 1 ms 2592 KB Output is correct
7 Correct 1 ms 2396 KB Output is correct
8 Correct 1 ms 2392 KB Output is correct
9 Correct 1 ms 2392 KB Output is correct
10 Correct 0 ms 2396 KB Output is correct
11 Correct 1 ms 2396 KB Output is correct
12 Incorrect 2 ms 2396 KB Output isn't correct
13 Halted 0 ms 0 KB -