Submission #824519

#TimeUsernameProblemLanguageResultExecution timeMemory
824519petezaLet's Win the Election (JOI22_ho_t3)C++14
16 / 100
2591 ms312 KiB
#include <bits/stdc++.h> using namespace std; bool vis[505]; int n, k; int as, bs; vector<pair<int, int>> a, b; int todo=0,ptr=0; long double cans=1e18, ans = 1e18, csum = 0; vector<int> vec; int av[1005], bv[1005]; int main() { srand(time(NULL)); cin >> n >> k; for(int i=0;i<n;i++) { cin >> as >> bs; av[i] = as; bv[i] = bs; a.emplace_back(as, i); if(bs!=-1) b.emplace_back(bs, i); vec.push_back(i); } sort(vec.begin(), vec.end(), [&](int i, int j){ if(bv[i] == -1) return (bool)0; if(bv[j] == -1) return (bool)1; if(bv[i]-av[i] == bv[j]-av[j]) return av[i] > av[j]; return bv[j]-av[i] > bv[j]-av[j]; }); //blablbalbllba sort(b.begin(), b.end()); for(int K=0;K<5000;K++) { ans = 1e18; csum = 0; sort(a.begin(), a.end()); for(int selb=0;selb<=b.size();selb++) { vector<bool> vis(n, 0); todo = k; csum = 0; ptr = 0; bool broke = 0; for(int i=0;i<selb;i++) { if(b[i].first == INT_MAX) broke = 1; vis[b[i].second] = 1; csum += 1.00*b[i].first/(i+1); todo--; } if(broke) break; while(ptr<n&&todo > 0){ if(vis[a[ptr].second]){ptr++; continue;} csum += 1.00*a[ptr].first/(selb+1); todo--; ptr++; } if(todo<=0) ans = min(ans, csum); } cans = min(cans, ans); random_shuffle(b.begin(), b.end()); } cout << cans; }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:34:28: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |         for(int selb=0;selb<=b.size();selb++) {
      |                        ~~~~^~~~~~~~~~
#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...