Submission #1239055

#TimeUsernameProblemLanguageResultExecution timeMemory
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...