제출 #1239055

#제출 시각아이디문제언어결과실행 시간메모리
1239055Noname_1900Let's Win the Election (JOI22_ho_t3)C++20
11 / 100
2596 ms328 KiB
#include<bits/stdc++.h> using namespace std; const int NMAX = 500+1; pair<int, int> tempsNec[NMAX]; int nbVilles, nbNec; bool vu[NMAX]; vector<int> sequence; pair<double, vector<int>> coutPourPrendre(int nbPris, double nbCollaborateur) { if(nbPris == nbNec) { vector<int> w; return {0, w}; } pair<double, vector<int>> meill = {1000000, {}}; for(int i = 0; i < nbVilles; i++) { if(vu[i]) continue; vu[i] = true; double A = tempsNec[i].first, B = tempsNec[i].second; auto retour = coutPourPrendre(nbPris+1, nbCollaborateur); retour.second.push_back(i); double actu = A/nbCollaborateur + retour.first; if(actu <= meill.first) { meill.second = retour.second; meill.first = actu; } if(B == -1) { vu[i] = false; continue; } retour = coutPourPrendre(nbPris+1, nbCollaborateur+1); retour.second.push_back(i); actu = B/nbCollaborateur + retour.first; if(actu <= meill.first) { meill.second = retour.second; meill.first = actu; } vu[i] = false; sequence.pop_back(); } return meill; } int main() { ios::sync_with_stdio(false); cin.tie(0); int nbT = 1; for(int c = 0; c < nbT; c++) { cin >> nbVilles >> nbNec; for(int i = 0; i < nbVilles; i++) { int a, b; cin >> a >> b; tempsNec[i] = {a, b}; } // cout << "klj" << endl; auto a = coutPourPrendre(0, 1); cout << a.first << "\n"; //for(int i : a.second) cout << i << " "; //cout << endl; } }
#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...