Submission #855668

#TimeUsernameProblemLanguageResultExecution timeMemory
855668mkorzybskiLet's Win the Election (JOI22_ho_t3)C++17
0 / 100
218 ms456 KiB
#include<bits/stdc++.h> using namespace std; #define pii pair<int,int> #define f first #define s second #define ld long double #define ll long long int n, k, I; const int N = 507; int A[N], B[N]; vector <pii> vA; ld odpowiedz; bool wziete[N]; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> k; for(int i=1; i<=n; i++) { cin >> A[i] >> B[i]; if(B[i] != -1) I++; vA.push_back({A[i], i}); } I = min(I, k); sort(vA.begin(), vA.end()); for(int i=1; i<=k; i++) { odpowiedz += (ld) vA[i-1].f; } cout << odpowiedz << endl; for(int i=1; i<=I; i++) { vector <pii> ciagA; for(int j=1; j<=n; j++) ciagA.push_back(vA[j-1]); ld wynik = 0; vector <ld> vBtmp; for(int j=1; j<=i; j++) { ld minWyn = 10000000; int kto = -1; for(int o=1; o<=n; o++) { if(wziete[o] or B[o] == -1) continue; ld tmp = ((ld) B[o] / (ld) j); if(A[o] <= ciagA[k-i-1].f) tmp += ((ld)(ciagA[k-i].f - A[o]) / (ld)(i+1)); //cout << "tmp = " << ((ld)(ciagA[k-i].f - A[o]) / (ld)(i+1)) << endl; if(minWyn > tmp) { minWyn = tmp; kto = o; } } //cout << "kto = " << kto << endl; wziete[kto] = true; wynik += (ld) B[kto] /(ld) j; vBtmp.push_back((ld)B[kto]); for(int o=0; o<ciagA.size(); o++) { pii v = ciagA[o]; if(v.s == kto) { ciagA.erase(ciagA.begin() + o); } } } ld sumaA = 0; for(int j=1; j<=k-i; j++) { sumaA += (ld) ciagA[j-1].f; } sumaA /= (ld)(i+1); wynik = 0; ld licznik = 1; sort(vBtmp.begin(), vBtmp.end()); for(ld v : vBtmp) { wynik += v / licznik; licznik = licznik + (ld) 1; } odpowiedz = min(odpowiedz, wynik + sumaA); //cout << "wynik " << i << " = " << wynik << ", suma = " << sumaA << endl; for(int j=1; j<=n; j++) wziete[j] = false; } cout << fixed << setprecision(5) << odpowiedz; }

Compilation message (stderr)

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