Submission #527689

#TimeUsernameProblemLanguageResultExecution timeMemory
5276898e7Let's Win the Election (JOI22_ho_t3)C++17
10 / 100
5 ms328 KiB
//Challenge: Accepted #include <bits/stdc++.h> using namespace std; #ifdef zisk void debug(){cout << endl;} template<class T, class ... U> void debug(T a, U ... b){cout << a << " ", debug(b...);} template<class T> void pary(T l, T r) { while (l != r) cout << *l << " ", l++; cout << endl; } #else #define debug(...) 0 #define pary(...) 0 #endif #define ll long long #define maxn 505 #define pii pair<int, int> #define ff first #define ss second #define io ios_base::sync_with_stdio(0);cin.tie(0); pii a[maxn]; int main() { io int n, k; cin >> n >> k; for (int i = 0;i < n;i++) { cin >> a[i].ff >> a[i].ss; if (a[i].ss == -1) a[i].ss = 1<<30; } sort(a, a + n, [&] (pii x, pii y){return (x.ss == y.ss ? x.ff > y.ff : x.ss < y.ss);}); double cur = 0, ans = 1e9; for (int i = 0;i < k;i++) { vector<int> b; for (int j = n-1;j >= i;j--) { b.push_back(a[j].ff); } sort(b.begin(), b.end()); double tmp = cur; for (int j = 0;j < k - i;j++) { tmp += (double)b[j] / (i + 1); } //debug(i, cur, tmp); ans = min(ans, tmp); cur += (double)a[i].ss / (i+1); } ans = min(ans, cur); /* double ans = 1e9; sort(a, a + n); for (int i = 0;i < (1<<n);i++) { double val = 0; vector<int> tmp; for (int j = 0;j < n;j++) { if (i & (1<<j)) { tmp.push_back(a[j].ss); } } sort(tmp.begin(), tmp.end()); int cnt = tmp.size(), ts = tmp.size(); for (int j = 0;j < ts;j++) { val += (double)tmp[j] / (j + 1); } for (int j = 0;j < n;j++) { if (!(i & (1<<j))) { cnt++; val += (double)a[j].ff / (ts + 1); } if (cnt >= k) break; } ans = min(ans, val); } */ cout << fixed << setprecision(10) << 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...