제출 #1268062

#제출 시각아이디문제언어결과실행 시간메모리
1268062ChuanChenLet's Win the Election (JOI22_ho_t3)C++20
10 / 100
4 ms328 KiB
#include<bits/stdc++.h> using namespace std; #define debug(v) //cout << #v << ": " << v << endl; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; const int MAXN = 2e5+5, inf = 2e9; const ll INF = 1e18; int n, k; vector<pii> states; bool cmp(pii x, pii y){ if(x.second != y.second) return x.second < y.second; return x.first > y.first; } long double ans = inf; int main(){ cin >> n >> k; for(int i = 1; i <= n; i++){ int a, b; cin >> a >> b; if(b==-1) b = inf; states.push_back({a, b}); } sort(states.begin(), states.end(), cmp); for(int T = 0; T <= k; T++){ if(T>0 && states[T-1].second == inf) break; debug(T); long double spent = 0; int efficiency = 1; for(int i = 0; i < T; i++){ spent += states[i].second/(long double)efficiency; efficiency++; } debug(spent); vector<int> left_over; for(int i = T; i < n; i++) left_over.push_back(states[i].first); sort(left_over.begin(), left_over.end()); int sum = 0; for(int i = 0; i < k-T; i++) sum += left_over[i]; spent += sum/(long double)efficiency; debug(spent) ans = min(ans, spent); } cout << fixed << setprecision(16) << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...