Σελίδα 1 από 1

Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσιεύτηκε: Παρ Ιαν 27, 2017 5:49 pm
από Γιώργος Λ.
Έχοντας δημιουργήσει και τεστάρει το πρόγραμμα μου με όλα τα δωσμένα παραδείγματα προσπαθήσα να το υποβάλλω. Το tester αναγνώρισε το αρχείο εξόδου το όποιο μέσα όμως είχε κάποιες ανεξήγητες τιμές. Έτρεξα το πρόγραμμα τοπικά με ίδιο αρχείο εισόδου με αυτό του παραδείγματος και η έξοδος ήταν η προβλεπόμενη. Τι κάνω λάθος; :| :|

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσιεύτηκε: Παρ Ιαν 27, 2017 6:57 pm
από Sinnosuke
Μήπως χρησιμοποιείς κάπου μεταβλητή που δεν της έχεις αναθέσει καμία τιμή; Το έχω πάθει αρκετές φορές και πάντα αυτό φταίει.

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσιεύτηκε: Παρ Ιαν 27, 2017 8:40 pm
από Γιώργος Λ.
Ευχαριστώ πολύ αλλά φοβάμαι πως κάθε μεταβλητή είναι ορισμένη και χρησιμοποιημένη. Και για κάθε αρχείο εισόδου το αποτέλεσμα είναι το αναμενόμενο

Βοήθεια!

Δημοσιεύτηκε: Σάβ Ιαν 28, 2017 1:33 pm
από Γιώργος Λ.
Έχω ολοκληρώσει το πρόγραμμα για την πρώτη φάση του ΠΔΠ τα αποτελέσματα τοπικά είναι τα αναμενόμενα σε πλήθος εισόδων, μεταξύ των οποίων και αυτές που χρησιμοποιεί το tester στην ιστοσελίδα υποβολής. Ωστόσο έρχομαι αντιμέτωπος με μήνυμα αποτυχίας. Μπορεί κάποιος να μου εξηγήσει τι συμβαίνει;;;;;;;;;;;; Ευχαριστώ εκ των προτέρων

Re: Βοήθεια!

Δημοσιεύτηκε: Σάβ Ιαν 28, 2017 6:26 pm
από infinity
Καλησπέρα Γιώργο,

Μιας και η περίοδος υποβολών δεν έχει λήξει ακόμα θα σε παρακαλούσα να μην δημοσιεύεις την λύση σου στο forum. Επιπλέον, είναι πολύ δύσκολο για κάποιον που θα δει τον κώδικά σου χωρίς καμία επεξήγηση να καταλάβει τι θες να κάνεις και τι πάει στραβά. Ο καθένας έχει τον δικό του τρόπο με τον οποίο αποτυπώνει την λύση του σε κώδικα και είναι πολύ δύσκολο να προσαρμοστεί στους τρόπους του άλλου.

Θα πω ωστόσο πως μάλλον αυτό που γίνεται είναι ότι βγαίνεις εκτός ορίων σε κάποιον πίνακα και στον υπολογιστή σου τυχαίνει απλά να μην επηρρεάζει το αποτέλεσμα.

Παρ' όλ' αυτά θα ήταν καλό αν μπορείς να διαγράψεις τον κώδικά σου, ή αν δεν γίνεται να τον αφαιρέσει κάποιος διαχειριστής.

Καλή συνέχεια και καλή επιτυχία :)

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσιεύτηκε: Σάβ Ιαν 28, 2017 8:07 pm
από Γιώργος Λ.
Ζήτω συγνώμη για την αναστάτωση
Απλώς η κατάσταση είναι απίστευτα στρεσογόνος
Δεν έπρεπε να ανεβάσω κώδικά ούτε να ανεβάσω ξανά το ίδιο θέμα
Δεν πρόκειται να επαναληφθεί

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσιεύτηκε: Σάβ Ιαν 28, 2017 9:53 pm
από infinity
χαχαχ, ντάξει μην ανησυχείς δεν υπάρχει πρόβλημα :P

Σχετικά με το πρόβλημα που είχες πάντως προσπάθησε να κάνεις όλους τους πίνακες σου global, δήλωσε τους δηλαδή έξω από την main. Παίζει να σου διορθωθεί το πρόβλημα έτσι.

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσιεύτηκε: Σάβ Ιαν 28, 2017 11:01 pm
από Κηπουρίδης
infinity έγραψε:χαχαχ, ντάξει μην ανησυχείς δεν υπάρχει πρόβλημα :P

Σχετικά με το πρόβλημα που είχες πάντως προσπάθησε να κάνεις όλους τους πίνακες σου global, δήλωσε τους δηλαδή έξω από την main. Παίζει να σου διορθωθεί το πρόβλημα έτσι.
Κι ο λογος ειναι οτι οι πινακες αρχικοποιουνται απευθειας σε 0 οταν ειναι global, ενω οταν δεν ειναι αρχικοποιουνται σε ο,τι γουσταρουν.
Ετσι μπορει τοπικα, στο πισι σου, να αρχικοποιηθηκαν σε 0 καποια πραγματα, ενω στο hellenico οχι. Συνεπως να δινουν και διαφορετικο αποτελεσμα.

Παρεμπιπτοντως, το hellenico ελεγχει με πολλα testcases αλλα ανακοινωνει λιγα απο αυτα (ωστε να μη μπορει καποιος να κανει προγραμματα που απλα να πετανε τη σωστη απαντηση, χωρις να την υπολογιζουν). Μηπως πραγματι περνας τα testcases που εχουν ανακοινωθει, και στο πισι σου και στο hellenico, κι εχεις σφαλμα σε αλλα, πιο μεγαλα, που ειναι κρυφα;

Πρωτα ο Θεος αυριο θα ανεβασω ενα ακομα ενδεικτικο testcase με πολυ μεγαλο Ν για να το τεσταρεις.

Υ.Γ.: Αφου διορθωθηκε το προβλημα, ουτε γατα ουτε ζημια. Δεν προλαβε και κανεις να το δει, μη φοβασαι :D.

Re: Πρόβλημα στον 29ο Πανελλήνιο Διαγωνισμό Πληροφορικής

Δημοσιεύτηκε: Πέμ Φεβ 02, 2017 7:04 pm
από switch
Εκτός από την αρχικοποίηση των Global πινάκων, ένας σημαντικός περιορισμός που πρέπει να αποφεύγουμε τη χρήση τοπικών μεγάλων auto πινάκων είναι ότι μας περιορίζουν το stack, άρα και το επίπεδο recursion που ίσως να θέλουμε να φτάσουμε.

Τα runtime error από έλλειψη stack συνήθως δεν προσφέρουν κάποιο κατανοητό μήνυμα για να καταλάβεις τι πρόβλημα υπήρξε.

Κώδικας: Επιλογή όλων

int test1[1000000]; //σωστή λύση

int main(){...
      int test2[1000000];//κακή επιλογή!!!! Μεγάλος πίνακας δεσμεύει 
                                   //πολύ stack. 
                                  //Το περιεχόμενο του είναι τυχαίο


      static int test3[1000000];//και αυτή είναι σωστή λύση 
                                           //(δεν δεσμεύει stack)
      ...
}

Η χρήση C++ containers όπως vector, stack, queue, list δεν έχουν τέτοιο περιορισμό (δεσμεύουν δυναμικά την μνήμη τους με new/delete)