제출 #1340686

#제출 시각아이디문제언어결과실행 시간메모리
1340686sztrdxstthgGift Boxes (EGOI25_giftboxes)C++20
19 / 100
111 ms6272 KiB
#include <iostream> 
using namespace std;

const int TAILLE_MAX = 500000;
int nbEquipes, tailleFile;
int vals[TAILLE_MAX];
int occ[TAILLE_MAX], occ2[TAILLE_MAX];

void lire() {
    cin >> nbEquipes >> tailleFile;
    for (int i = 0; i < tailleFile; i++) {
        cin >> vals[i];
    }
}

void coupe() {
    //avance max gauche, puis droite

    for (int idE = 0; idE < nbEquipes; idE++) {
        occ[idE] = 0;
    }
    int score1 = 0, idG = 0, idD = tailleFile - 1;
    
    while (idG < tailleFile && occ[vals[idG]] == 0) {
        occ[vals[idG]] = 1;
        score1++;
        idG++;
    }
    while (idD >= 0 && occ[vals[idD]] == 0) {
        occ[vals[idD]] = 1;
        score1++;
        idD--;
    }

    //avance max droite, puis gauche
    for (int idE = 0; idE < nbEquipes; idE++) {
        occ2[idE] = 0;
    }
    int score2 = 0, idG2 = 0, idD2 = tailleFile - 1;
    
    while (idD2 >= 0 && occ[vals[idD2]] == 0) {
        occ2[vals[idD2]] = 1;
        score2++;
        idD2--;
    }
    while (idG2 < tailleFile && occ[vals[idG2]] == 0) {
        occ2[vals[idG2]] = 1;
        score2++;
        idG2++;
    }
    if (score2 > score1) cout << idG2 << ' ' << idD2 << '\n';
    else cout << idG << ' ' << idD << '\n';
    return;
}

int main() {
    lire();
    coupe();
    return 0;
}
#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...