Aiuto per Elevator Inspection (itacpc_inspection)

Ciao a tutti, ho cercato di risolvere il problema Elevator Inspection.

Dopo tantissimi tentativi, usando tanti algoritmi diversi mi arrendo (circa 4 mesi).

Siete sicuri che il tester funzioni bene?

Ogni volta che sottometto riesco solo “stampando sempre NO” a riconoscere i soli casi NO, mentre per i casi YES devo includere il cammino…ma ottengo risultati sempre sbagliati.

Qualcuno ha qualche idea in merito?

Grazie mille in anticipo!

in effetti anche io ci avevo provato e ho provato a controllare: il seguente codice

#include <bits/stdc++.h>
using namespace std;

signed main(){
	int N; cin >> N;
    vector<pair<int, int>> V(N);

    for(int i=0; i<N; i++) {
        cin >> V[i].first >> V[i].second;
    }

	if(N==2 && V[0].first == 1 && V[0].second == 2 && V[1].first == 1 && V[1].second == 3) {
		cout << "YES\n";
		cout << "0 2\n1 1\n1 2\n0 1\n";
		return 0;
	}
	else exit(1);
}

che altro non fa che controllare se l’input è il secondo caso di esempio, dà execution failed because the return code was non zero su tutti i casi eccetto uno, il secondo, dove restituisce wrong answer.
Mi sembra di aver scritto correttamente l’output del secondo esempio.

Ciao, la mia soluzione prende 100, penso sia un problema delle vostre soluzioni

Meno male! Pero’ il problema è il fatto che il codice che ho inviato nel mio messaggio di prima ottiene un risultato che non dovrebbe affatto ottenere…


Il codice stampa letteralmente l’ouput del secondo esempio se e solo se l’input è il secondo esempio (altrimenti fa scattare exit(1) ), il fatto che su quel caso ottenga output isn’t correct credo significhi che quel caso e’ esattamente il secondo di esempio… ma lui considera l’output dato di esempio come errato…
Ovviamente ci sono parecchie soluzioni ad ogni testcase di questo problema, quindi mi vien da pensare che il chekcer guardi solo se il tuo risultato e’ lo stesso della soluzione intended… soluzione che però non sarebbe neanche la stessa che viene proposta dagli esempi!

UPD: provandole un po’ tutte mi sembra che solo

cout << "YES\n";
cout << "0 2\n0 1\n1 3\n1 1";

risolva quel caso correttamente…