Aiuto per Mana (ois_mana)

Ciao a tutti, ho bisogno di aiuto per risolvere il problema Mana.

Nonostante il codice sembri funzionare (sia come ragionamento logico, sia come scrittura del codice), in diverse subtask ottengo errore di tempo (collegabile, secondo me, ad un errore di codice che però non riesco ad individuare). Qualcuno riuscirebbe ad aiutarmi?

Ecco il mio codice:

// NOTE: it is recommended to use this even if you don't understand the following code.

#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    // uncomment the two following lines if you want to read/write from files
    ifstream cin("input2.txt");
    // ofstream cout("output.txt");

    int N, K;
    cin >> N >> K;

    vector<long long> C(N);
    for (int i = 0; i < N; ++i)
        cin >> C[i];

    long long M = 0;


    // INSERT YOUR CODE HERE
    vector<long long> mano (2);

    mano.push_back(C[0]);
    C.erase(C.begin());

    for (long long i=0; i<K; i++) {
        mano.push_back(C[0]);
        C.erase(C.begin());

        if (mano[0] < mano[1]) {
            M += mano[0];
            C.push_back(mano[0]);
            reverse(mano.begin(), mano.end());
            mano.pop_back();
        } else {
            M += mano[1];
            C.push_back(mano[1]);
            mano.pop_back();
        }
    }


    cout << M << endl;

    return 0;
}

Grazie mille in anticipo!

Direi che semplicemente è troppo lento. Con K < 10^9 non puoi iterare su K in meno di 1 secondo.

Per K molto grande prendi in considerazione la periodicità della estrazione delle carte dal mazzo e loro riposizionamento nel mazzo.

Ciao, mi sono appena iscritto alla piattaforma quindi scrivo non per il problema mana ma piuttosto per chiedere aiuto riguardo a come poter scrivere messaggi: è da mezzora che cerco di capire come fare ma non trovo il modo (sono solo riuscito a rispondere a messaggi già esistenti come sto facendo ora), non è che qualcuno potrebbe dirmi come posso fare? grazie mille

Nella home page c’è un tasto “nuovo argomento”.
Comunque siamo in pochi a rispondere sul forum quindi ci mettiamo un po’ ma non serve chiedere la stessa cosa in due posti diversi nel giro di poche ore.

va bene: :+1: