# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
592607 | VasLemmy | Sure Bet (CEOI17_sure) | C++17 | 0 ms | 212 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/// slava sovet·skomu soyuzu
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define db double
#define ll long long
#define pdb pair<double,double>
#define fi first
#define se second
#define pb push_back
const ll mod = 1e9 + 7;
const int maxN = 5000005;
int n;
pdb a[maxN];
vector<pdb> bet2;
vector<pdb> bet1;
vector<pdb> subet2;
vector<pdb> subet1;
bool FA(pdb x,pdb y)
{
return (x.fi > y.fi || (x.fi == y.fi && x.se > y.se));
}
void read()
{
cout << fixed << setprecision(4);
cin >> n;
for(int i = 1;i <= n;i++)
{
cin >> a[i].fi >> a[i].se;
bet2.push_back({(db)-1,(db)(a[i].se-1)});
bet1.push_back({(db)(a[i].fi-1),(db)-1});
}
sort(bet2.begin(),bet2.end(),FA);
sort(bet1.begin(),bet1.end(),FA);
/*for(pdb x : bet2)
{
cout << x.fi <<' '<< x.se <<'\n';
}
cout <<'*'<<'\n';
for(pdb x : bet1)
{
cout << x.fi <<' '<< x.se <<'\n';
}*/
subet1.resize(bet1.size());
for(int i = 0;i < bet1.size();i++)
{
if(i == 0) subet1[i] = bet1[i];
else
{
subet1[i].fi = subet1[i-1].fi + bet1[i].fi;
subet1[i].se = subet1[i-1].se + bet1[i].se;
}
}
//cout <<"dark";return;
pdb tmp = {0,0};
db res = -1;
for(int i = 0;i < bet2.size();i++)
{
tmp.fi = bet2[i].fi;
tmp.se = bet2[i].se;
int low = 0;
int high = bet1.size() - 1;
while(low <= high)
{
int mid = (low + high) / 2;
if(tmp.fi + subet1[mid].fi <= tmp.se + subet1[mid].se)
{
low = mid + 1;
}
else high = mid - 1;
}
if(high >= 0 && high < bet1.size())
{
res = max(res,tmp.fi + subet1[high].fi);
}
else if(low >= 0 && low < bet1.size())
{
res = max(res,tmp.se + subet1[low].se);
}
}
cout << res;
}
void sol()
{
}
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int tests;
//cin >> tests;
tests = 1;
while (tests--)
{
read();
sol();
}
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |