Wrong Answer
Ο Troy έφτιαξε το παρακάτω πρόβλημα (με τίτλο WA) για ένα διαγωνισμό προγραμματισμού:
Υπάρχει ένα παιχνίδι με επίπεδα αριθμημένα από το έως το . Υπάρχουν δύο χαρακτήρες, και οι δύο είναι αρχικά στο επίπεδο . Για , κοστίζει νομίσματα για να κινηθεί ένας χαρακτήρας από το επίπεδο στο επίπεδο . Δεν επιτρέπεται να μετακινήσουμε έναν χαρακτήρα από το επίπεδο στο επίπεδο αν . Για να κερδίσετε το παιχνίδι, κάθε επίπεδο (εκτός από το επίπεδο ) πρέπει να το έχει επισκεφθεί ακριβώς ένας χαραχτήρας. Ποιός είναι ο ελάχιστος αριθμός νομισμάτων που χρειάζετε για να κερδίσετε;
Ο JP είναι ένας διαγωνιζόμενος και υπέβαλε την παρακάτω λύση σε Python.
def Solve(N, A):
# A[i][j] is cost of moving from level i to level j
# N is the number of levels
x, y, sx, sy = 1, 1, 0, 0 # Initialize x and y to 1, sx and sy to 0
for i in range(2, N + 1): #loop from 2 to N
if sx + A[x][i] < sy + A[y][i]:
sx += A[x][i]
x = i
else:
sy += A[y][i]
y = i
return sx + sy
Ο Troy είναι σίγουρος πως η λύση του JP είναι λάθος. Ας υποθέσουμε ότι για μια είσοδο στο WA, η λύση του JP επιστρέφει αλλά ο ελάχιστος αριθμός κερμάτων που χρειάζονται είναι . Για να δείξετε πόσο λάθος είναι η λύση του JP, βοηθήστε τον Troy να βρει μία είσοδο και έτσι ώστε το να μεγιστοποιείται.
Είσοδος
Δεν υπάρχει είσοδος
Έξοδος
Εκτυπώστε μία είσοδο στο WA με την ακόλουθη μορφή:
Στην πρώτη γραμμή, εκτυπώστε έναν ακέραιο ( ). Έπειτα εκτυπώστε - γραμμές και η -οστη γραμμή θα πρέπει να περιέχει - ακέραιους , ..., ( ).
Αν η έξοδός σας δεν είναι στη σωστή μορφή, θα θεωρηθεί λανθασμένη και θα λάβετε βαθμούς.
Αλλιώς, υποθέστε ότι για τη δική σας είσοδο, η λύση του JP επιστρέφει αλλά ο ελάχιστος αριθμός νομισμάτων που απαιτείται είναι . Τότε θα λάβετε min(, /) βαθμούς όπου είναι ο μικρότερος ακέραιος που δεν είναι μεγαλύτερος του .
Παράδειγμα
output
5
1 2 3 4
10 9 8
7 6
5
Επεξήγηση του παραδείγματος
Ο βέλτιστος τρόπος για να κερδίσετε το παιχνίδι είναι ο ένας χαρακτήρας να επισκεφθεί το επίπεδο και ο άλλος χαρακτήρας να επισκεφθεί τα επίπεδα , και . Αυτό κοστίζει () + ( + + ) = νομίσματα. Η λύση του JP επιστρέφει . Οπότε, / = /(x) = , άρα αυτή η έξοδος θα λάβει = βαθμό.
Comments