Chiarimenti riguardo al punteggio e ai vari subtasks

Non so cosa sbaglio nel codice e anche se completo il subtask 1 non mi da nessun punto. Il codice lo ho testato con gli esempi e funziona alla grande, inoltre nel feedback la valutazione mi da 0/100 anche se alcuni test dei vari subtask li svolgo correttamente. Qualcuno mi saprebbe aiutare?

Per ottenere i punti di un subtask, la tua soluzione deve risolvere correttamente tutti i test che contiene. Quindi per esempio questa situazione corrisponde ad avere 0 punti per il subtask 3, nonostante la mia soluzione abbia terminato con una risposta corretta in una parte dei test:

Screenshot from 2022-10-22 21-16-50

Mentre per ottenere i punti di un subtask devi risolverlo completamente, come in questo caso:

Screenshot from 2022-10-22 21-18-15

Ah, ok.
Ma se in locale il programma funziona, come faccio a capire e quindi a modificarlo, al fine di avere tutti i test dei vari subtasks completi?
Allego la mia soluzione all’ esercizio della torre di Pisa.
Qualcuno mi potrebbe dire cosa non va?

#include <iostream>
#include <vector>
using namespace std;

int salta(int N, vector<int> S, vector<int> A,vector<int> B){

    int i;
    for(i=0;i<N;i++){
        if(A[i]>=N || B[i]>=N){
            return -1;
        }
    }
    A[N-1]=1;
    for(i=0;i<N;i++){
        A[i]=A[i]+i;
        B[i]=B[i]+i;
    }
i=0;
int segue=0;
while(A[i]!=N || B[i]!=N){

    if(S[A[i]]<=segue){
        i=A[i];

    }
    else if(S[B[i]]<=segue){
        i=A[i];

    }
    else if(S[A[i]] >segue && S[B[i]]>segue){
        segue++;
    }
}
    return segue;

}

Questo sta a te :wink:

Un modo può essere generare nuovi casi a mano e verificare che il programma risponda correttamente, oppure scrivere un’altra soluzione, magari meno efficiente (anche che le prova tutte volendo) e trovare un caso in cui le due soluzioni danno risposte diverse.

Poi ci sono degli errori comuni che puoi verificare di non aver fatto:

  • Variabili non inizializzate
  • Uso degli int invece che i long long quando la risposta è abbastanza grande (sopra i ~2 miliardi)
  • Errori nelle tue assunzioni (questo è molto vago, ma vuol dire che l’idea dietro alla tua soluzione è sbagliata)
  • …

ah ok, ho capito, grazie

comunque il subtask 1 è tutto giusto ma non mi assegna nessun punto

Tipicamente il primo subtask corrisponde ai casi d’esempio, e vale zero punti perchè la risposta giusta è già contenuta nel testo del problema

1 Mi Piace