From b77b24034563618fe2f7367f45c142a56c2a36d8 Mon Sep 17 00:00:00 2001 From: kbokis Date: Sun, 5 May 2024 06:15:00 +0300 Subject: [PATCH 1/2] 35-camp-statements --- _data/contests/35-PDP.yml | 38 ++ assets/35-camp-d-d1c1.svg | 277 +++++++++++ assets/35-camp-d-d2c2.svg | 459 ++++++++++++++++++ assets/35-camp-d-d2c2a.svg | 169 +++++++ assets/35-camp-d-d2c2b.svg | 193 ++++++++ assets/35-camp-d-d2c2c.svg | 229 +++++++++ .../_35-PDP/camp_c-evencycle-statement.md | 73 +++ contests/_35-PDP/camp_c-oddsum-statement.md | 53 ++ .../_35-PDP/camp_c-secretpaths-statement.md | 116 +++++ contests/_35-PDP/camp_c-sumij-statement.md | 62 +++ 10 files changed, 1669 insertions(+) create mode 100755 assets/35-camp-d-d1c1.svg create mode 100755 assets/35-camp-d-d2c2.svg create mode 100755 assets/35-camp-d-d2c2a.svg create mode 100755 assets/35-camp-d-d2c2b.svg create mode 100755 assets/35-camp-d-d2c2c.svg create mode 100755 contests/_35-PDP/camp_c-evencycle-statement.md create mode 100755 contests/_35-PDP/camp_c-oddsum-statement.md create mode 100755 contests/_35-PDP/camp_c-secretpaths-statement.md create mode 100755 contests/_35-PDP/camp_c-sumij-statement.md diff --git a/_data/contests/35-PDP.yml b/_data/contests/35-PDP.yml index aa0efab0..0c8ffb53 100755 --- a/_data/contests/35-PDP.yml +++ b/_data/contests/35-PDP.yml @@ -71,3 +71,41 @@ conflicts: points: 35 solution_tags: ["trees", "dfs", "map", "eulerian path", "greedy", "hash table"] on_judge: true + +secretpaths: + full_name: "Μυστικοί Δρόμοι" + stage: "camp_c" + statement_pdf_url: "https://drive.google.com/file/d/1IxWUA2IFecdPA6Dp4cfM14fMM3a8NmhL/view" + statement_md: true + testcases_url: "" + codes_in_git: false + solution_tags: [ ] + +sumij: + full_name: "sumij" + stage: "camp_c" + statement_pdf_url: "https://drive.google.com/file/d/1ggQCu5XyJawj-mOCyxjQzR-eZ288s6UL/view" + statement_md: true + testcases_url: "" + codes_in_git: false + solution_tags: [ ] + +evencycle: + full_name: "evencycle" + stage: "camp_c" + statement_pdf_url: "https://drive.google.com/file/d/1hOutQSWs1OpbOVw7QZb1jgjbh5wz1pA3/view" + statement_md: true + testcases_url: "" + codes_in_git: false + solution_tags: [ ] + + +oddsum: + full_name: "oddsum" + stage: "camp_c" + statement_pdf_url: "https://drive.google.com/file/d/1gfjNdPQdHFC_jAvLvnUUEItXTiRH8jWY/view" + statement_md: true + testcases_url: "" + codes_in_git: false + solution_tags: [ ] + diff --git a/assets/35-camp-d-d1c1.svg b/assets/35-camp-d-d1c1.svg new file mode 100755 index 00000000..9e316b5c --- /dev/null +++ b/assets/35-camp-d-d1c1.svg @@ -0,0 +1,277 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + 2 + + 8 + + 4 + + 1 + + 1 + + 3 + + 7 + + 5 + + 1 + + 6 + + + + + + + + + + + diff --git a/assets/35-camp-d-d2c2.svg b/assets/35-camp-d-d2c2.svg new file mode 100755 index 00000000..679f2375 --- /dev/null +++ b/assets/35-camp-d-d2c2.svg @@ -0,0 +1,459 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + 1 + + + + + + 4 + + 3 + + 2 + + + + + 5 + + 4 + + 1 + + 2 + + 3 + + + + + + + + + + 2 + + 5 + + 6 + + 4 + + 3 + + + 1 + + 7 + + + + + + + + + + + diff --git a/assets/35-camp-d-d2c2a.svg b/assets/35-camp-d-d2c2a.svg new file mode 100755 index 00000000..cb2c0637 --- /dev/null +++ b/assets/35-camp-d-d2c2a.svg @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + 1 + + + + + + 4 + + 3 + + 2 + + + + diff --git a/assets/35-camp-d-d2c2b.svg b/assets/35-camp-d-d2c2b.svg new file mode 100755 index 00000000..560d8494 --- /dev/null +++ b/assets/35-camp-d-d2c2b.svg @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + 5 + + 4 + + 1 + + 2 + + 3 + + + + + + + + + diff --git a/assets/35-camp-d-d2c2c.svg b/assets/35-camp-d-d2c2c.svg new file mode 100755 index 00000000..a542233a --- /dev/null +++ b/assets/35-camp-d-d2c2c.svg @@ -0,0 +1,229 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + 2 + + 5 + + 6 + + 4 + + 3 + + + 1 + + 7 + + + + + + + + + + diff --git a/contests/_35-PDP/camp_c-evencycle-statement.md b/contests/_35-PDP/camp_c-evencycle-statement.md new file mode 100755 index 00000000..cb70779d --- /dev/null +++ b/contests/_35-PDP/camp_c-evencycle-statement.md @@ -0,0 +1,73 @@ +--- +layout: statement +codename: evencycle +--- + +## Πρόβλημα: + +Δίνεται ένας μη κατευθυνόμενος γράφος αποτελούμενος από $$N$$ κορυφές και $$M$$ ακμές. Ζητείται να βρείτε +έναν κύκλο με άρτιο πλήθος ακμών, αν υπάρχει. + +## Αρχεία εισόδου (evencycle.in): + +Στην πρώτη γραμμή της εισόδου θα υπάρχει ένας θετικός ακέραιος $$T$$, το πλήθος των ερωτημάτων που θα +πρέπει να απαντήσετε. Σε καθένα από τα επόμενα $$T$$ ερωτήματα, θα υπάρχουν στην πρώτη γραμμή δύο +φυσικοί αριθμοί $$N$$ και $$M$$ χωρισμένοι μεταξύ τους με ένα κενό διάστημα: το πλήθος των κορυφών και το +πλήθος των ακμών του γράφου. Θα ακολουθούν $$M$$ γραμμές, κάθε μία από τις οποίες θα περιέχει δύο +φυσικούς αριθμούς $$U$$ και $$V$$, χωρισμένους μεταξύ τους με ένα κενό διάστημα, που παριστάνουν μια ακμή +μεταξύ των κορυφών $$U$$ και $$V$$. Θεωρήστε ότι οι κορυφές είναι αριθμημένες από $$1$$ μέχρι $$Ν$$ και ότι δε θα +δίνονται δύο ακμές που να ενώνουν τις ίδιες κορυφές του γράφου. + +## Αρχεία εξόδου (evencycle.out): + +Η έξοδος θα πρέπει να περιέχει ακριβώς $$T$$ γραμμές, που κάθε μία θα περιέχει την απάντηση σε ένα ερώτημα, +με τη σειρά που αυτά δίνονται. Η γραμμή της απάντησης θα περιέχει, εναλλακτικά: + +- Τη λέξη “cycle”, ακολουθούμενη από έναν άρτιο θετικό ακέραιο αριθμό $$K$$ (το πλήθος των ακμών +του κύκλου), ακολουθούμενο από $$K$$ αριθμούς $$u_1, u_2, \ldots, u_k$$. Αυτή η απάντηση σημαίνει ότι βρέθηκε +ο ζητούμενος κύκλος. Για να είναι έγκυρη μια τέτοια απάντηση θα πρέπει $$K \ge 4$$ (προφανώς μια +σκέτη ακμή δε θεωρείται κύκλος), οι αριθμοί $$u_1, u_2, \ldots, u_k$$ να είναι ανά δύο διαφορετικοί, να +αντιστοιχούν σε κορυφές του κύκλου, να υπάρχει ακμή $$(u_i, u_{i+1})$$ για κάθε $$1 \le i \lt K$$ και επίσης να +υπάρχει ακμή $$(u_k, u_1)$$ για να κλείνει ο κύκλος. Σε περίπτωση που υπάρχουν περισσότεροι κύκλοι με +άρτιο πλήθος ακμών, μπορείτε να εκτυπώσετε όποιον από αυτούς θέλετε. +- Τη λέξη “none”, αν δεν υπάρχει κύκλος με άρτιο πλήθος ακμών. + +Όλες οι λέξεις και οι αριθμοί σε κάθε γραμμή της εξόδου θα πρέπει να χωρίζονται ανά δύο μεταξύ τους με +ένα κενό διάστημα. + +## Παράδειγμα αρχείων εισόδου - εξόδου: + +Για τη διευκόλυνσή σας, στο παράδειγμα που ακολουθεί είναι διαχωρισμένα τα τρία ερωτήματα εισόδου μεταξύ τους. + +| **evencycle.in** | **evencycle.out** | | +| :--- | :--- | | +| 3 | | | +|:--- | :--- | | +|4 5
1 2
1 3
2 3
3 4
4 1| cycle 4 3 2 1 4 | | +|:--- | :--- | :--- | +|5 6
1 2
1 3
1 4
1 5
2 3
4 5 | none | | +|:--- | :--- | :--- | +|7 6
1 7
3 4
4 5
5 6
6 3
5 2 | cycle 4 6 3 4 5 | | + +## Περιορισμοί: + +- $$1 \le T \le 10$$. +- $$1 \le N \le 100.000$$ και $$0 \le M \le 200.000$$. Φυσικά θα είναι $$M \le N \cdot \frac{N-1}{2}$$. +- $$1 \le U \le N$$ και $$1 \le V \le N$$ για κάθε δοθείσα ακμή, και επιπλέον $$U \neq V$$. +- Το άθροισμα των $$N$$ όλων των ερωτημάτων δε θα υπερβαίνει το $$200.000$$ και το άθροισμα των $$M$$ +όλων των ερωτημάτων δε θα υπερβαίνει το $$400.000$$. +- Όριο χρόνου εκτέλεσης: 1 sec. +- Όριο μνήμης: 256 MB. + +## Υποπροβλήματα: + +- Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, θα είναι $$N \le 10$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, θα είναι $$10 \lt N \le 100$$ και $$M \le 200$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$22\%$$, οι κορυφές του γράφου θα μπορούν να χρωματιστούν με +δύο χρώματα κατά τέτοιο τρόπο ώστε να μην υπάρχει ακμή μεταξύ κορυφών του ίδιου χρώματος. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$11\%$$, κάθε κορυφή του γράφου θα συνδέεται το πολύ με δύο +άλλες κορυφές. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, κάθε κορυφή του γράφου θα συνδέεται το πολύ με τρεις +άλλες κορυφές (και θα υπάρχουν κορυφές που συνδέονται ακριβώς με τρεις). +- Για τις υπόλοιπες περιπτώσεις ελέγχου, συνολικής αξίας $$22\%$$, κανείς από τους παραπάνω ειδικούς +περιορισμούς δε θα ισχύει. diff --git a/contests/_35-PDP/camp_c-oddsum-statement.md b/contests/_35-PDP/camp_c-oddsum-statement.md new file mode 100755 index 00000000..5980fe8f --- /dev/null +++ b/contests/_35-PDP/camp_c-oddsum-statement.md @@ -0,0 +1,53 @@ +--- +layout: statement +codename: oddsum +--- + +## Πρόβλημα: + +Δίνεται ένας πίνακας αποτελούμενος από $$N$$ ακέραιους αριθμούς: $$Α_1, Α_2, \ldots, A_N$$. +Μπορείτε να επιλέξετε +όσους από αυτούς τους αριθμούς θέλετε. Το ζητούμενο είναι το άθροισμα αυτών που θα επιλέξετε να είναι +περιττός αριθμός και να είναι το μέγιστο δυνατό. + +## Αρχεία εισόδου (oddsum.in): + +Στην πρώτη γραμμή της εισόδου θα υπάρχει ένας θετικός ακέραιος $$T$$, το πλήθος των ερωτημάτων. Σε +καθένα από τα επόμενα $$T$$ ερωτήματα, θα υπάρχει στην πρώτη γραμμή ένας φυσικός αριθμός $$N$$: το πλήθος +των στοιχείων του πίνακα. Η δεύτερη γραμμή θα περιέχει ακριβώς $$N$$ ακέραιους ακεραίους $$Α_1, Α_2, \ldots, A_N$$, +χωρισμένους ανά δύο με ένα κενό διάστημα. + +## Αρχεία εξόδου (oddsum.out): + +Η έξοδος θα πρέπει να περιέχει $$T$$ γραμμές. Κάθε γραμμή θα περιέχει έναν ακέραιο αριθμό, που δηλώνει το +μέγιστο δυνατό περιττό άθροισμα κάποιων επιλεγμένων αριθμών του αρχικού πίνακα, για το αντίστοιχο +ερώτημα. Αν καμία επιλογή αριθμών δεν μπορεί να δώσει περιττό άθροισμα, τότε η γραμμή πρέπει να +περιέχει τη λέξη **“IMPOSSIBLE”**. + +## Παράδειγμα αρχείων εισόδου - εξόδου: + +| **oddsum.in** | **oddsum.out** | +| :--- | :--- | +| 3
4
-2 2 -3 1
3
2 -5 -3
5
2 4 6 8 4|3
-1
IMPOSSIBLE | +{:.table_with_monospace_font} + +**Εξήγηση παραδείγματος:** + +Το παράδειγμα έχει τρία ερωτήματα. +Στο πρώτο ερώτημα, μπορούμε να επιλέξουμε τους αριθμούς $$2$$ και $$1$$, με άθροισμα $$3$$. +Στο δεύτερο ερώτημα, το καλύτερο που μπορούμε να κάνουμε είναι να επιλέξουμε τους αριθμούς $$2$$ και $$−3$$, με άθροισμα $$−1$$. +Τέλος, στο τρίτο ερώτημα, καμία επιλογή αριθμών δεν οδηγεί σε άθροισμα που να είναι περιττός αριθμός. + +## Περιορισμοί: + +- $$1 \le T \le 10$$. +- $$1 \le N \le 1.000.000$$ και το άθροισμα των $$N$$ όλων των ερωτημάτων δε θα υπερβαίνει το $$2.000.000$$. +- Η απόλυτη τιμή του αθροίσματος οποιουδήποτε υποσυνόλου των αριθμών του πίνακα $$A$$ δε θα +υπερβαίνει το $$1.000.000.000$$. +- Όριο χρόνου εκτέλεσης: 1 sec. +- Όριο μνήμης: 64 MB. + +## Υποπροβλήματα: + +- Για περιπτώσεις ελέγχου συνολικής αξίας $$20\%$$, θα είναι $$N \le 20$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$50\%$$, θα είναι $$N \le 1000$$. \ No newline at end of file diff --git a/contests/_35-PDP/camp_c-secretpaths-statement.md b/contests/_35-PDP/camp_c-secretpaths-statement.md new file mode 100755 index 00000000..acc93e01 --- /dev/null +++ b/contests/_35-PDP/camp_c-secretpaths-statement.md @@ -0,0 +1,116 @@ +--- +layout: statement +codename: secretpaths +--- + +## Πρόβλημα: + +Στο βασίλειο του Φίλιππου Β' του Μακεδόνος υπάρχουν $$N$$ πόλεις και $$N–1$$ μυστικοί δρόμοι, καθένας από +τους οποίους συνδέει αμφίδρομα ένα ζεύγος πόλεων. Από οποιαδήποτε πόλη μπορεί κάποιος να μεταβεί σε +οποιαδήποτε άλλη, χρησιμοποιώντας έναν ή περισσότερους μυστικούς δρόμους. + +Καθώς το βασίλειο δέχεται επίθεση, ο Φίλιππος αναγκάζεται να καταστρέψει κάποιους από τους μυστικούς +δρόμους, προκειμένου να εμποδίσει τον εχθρό να κινείται εύκολα μεταξύ των πόλεων. Αναθέτει το έργο +αυτό στον πιστό του σύμβουλο Αριστείδη, αδελφό του Παυσανία του Ορέστη. Συγκεκριμένα, ο Φίλιππος +μπορεί να του ζητήσει: + +- να καταστρέψει ένα συγκεκριμένο μυστικό δρόμο, ή +- να απαντήσει στην ερώτηση αν είναι δυνατή η μετάβαση από κάποια πόλη σε κάποια άλλη, μέσω +των μυστικών δρόμων που δεν έχουν ακόμα καταστραφεί. + +Αρχικά κανένας από τους μυστικούς δρόμους δεν έχει καταστραφεί. + +Προκειμένου η επικοινωνία ανάμεσα στον Φίλιππο και τον Αριστείδη να μην είναι εύκολο να υποκλαπεί από +τον εχθρό, οι παραπάνω δύο ενέργειες που ο Φίλιππος ζητάει από τον Αριστείδη είναι κωδικοποιημένες. +Διαβάστε προσεκτικά την περιγραφή των δεδομένων εισόδου και εξόδου του προβλήματος. + +## Αρχεία εισόδου (secretpaths.in): + +Η πρώτη γραμμή της εισόδου έχει τρεις ακέραιους αριθμούς χωρισμένους ανά δύο με ένα κενό διάστημα: το +πλήθος $$N$$ των πόλεων, το πλήθος $$M$$ των ενεργειών που ζητά ο Φίλιππος, και μια σταθερά κωδικοποίησης $$K$$ +που μπορεί να πάρει τις τιμές 0 ή 1. + +Ακολουθούν $$N−1$$ γραμμές που κάθε μία αντιστοιχεί σε ένα μυστικό δρόμο. Κάθε μία από αυτές περιέχει δύο +ακέραιους αριθμούς $$U$$ και $$V$$ χωρισμένους μεταξύ τους με ένα κενό διάστημα, που δηλώνουν ότι αρχικά +υπάρχει ένας μυστικός δρόμος που συνδέει απευθείας τις πόλεις $$U$$ και $$V$$. Θεωρήστε ότι οι πόλεις είναι +αριθμημένες από $$1$$ μέχρι $$Ν$$. + +Ακολουθούν $$M$$ γραμμές που κάθε μία αντιστοιχεί σε μία ενέργεια που ζητάει ο Φίλιππος. Κάθε μία από +αυτές περιέχει ένα χαρακτήρα $$T$$ και δύο ακέραιους αριθμούς $$U$$ και $$V$$. Ο χαρακτήρας είναι ένα από τα +κεφαλαία λατινικά γράμματα “A” ή “Β” και οι αριθμοί $$U$$ και $$V$$ υποδηλώνουν δύο πόλεις. + +Όταν ξεκινάει η επικοινωνία μεταξύ Φίλιππου και Αριστείδη, ο χαρακτήρας “A” σημαίνει ότι ο Φίλιππος +ζητάει την καταστροφή του δρόμου μεταξύ των πόλεων $$U$$ και $$V$$. Καμιά φορά, ο Φίλιππος μπερδεύεται και +ζητάει την καταστροφή κάποιου δρόμου που δεν υπήρχε ποτέ, ή που έχει ήδη καταστραφεί — στην +περίπτωση αυτή δεν πρέπει να γίνεται τίποτα. Ο χαρακτήρας “Β” σημαίνει ότι ο Φίλιππος ρωτάει αν αυτή τη +στιγμή είναι δυνατή η μετάβαση από την πόλη $$U$$ στην πόλη $$V$$, με τους υπάρχοντες δρόμους. + +Αν η σταθερά κωδικοποίησης $$K$$ έχει την τιμή $$0$$, τότε η σημασία των χαρακτήρων “Α” και “Β” είναι πάντοτε +η παραπάνω. Αν όμως το $$K$$ έχει την τιμή 1, τότε η σημασία των χαρακτήρων “Α” και “Β” αντιστρέφεται +κάθε φορά που ο Αριστείδης απαντάει θετικά σε μια ερώτηση του Φίλιππου. + +## Αρχεία εξόδου (secretpaths.out): + +Η έξοδος θα πρέπει να περιέχει μία γραμμή για κάθε ενέργεια που ζητάει ο Φίλιππος και που αντιστοιχεί σε +ερώτηση. Η γραμμή θα πρέπει να περιέχει μία λέξη που θα είναι: + +- “yes”, αν είναι δυνατή η μετάβαση μεταξύ των δύο πόλεων, ή +- “no”, αν δεν είναι δυνατή η μετάβαση. + +## Παραδείγματα αρχείων εισόδου - εξόδου: + +Το δίκτυο των πόλεων και των δρόμων και για τα δύο παραδείγματα που ακολουθούν είναι αυτό που +φαίνεται στο σχήμα δεξιά. Αλλάζουν μόνο η σταθερά κωδικοποίησης $$K$$ και οι ζητούμενες ενέργειες. + +
Παράδειγμα 1Παράδειγμα 2Δίκτυο Πόλεων
+
secretpaths.insecretpaths.out
8 7 0
3 5
8 4
1 6
2 8
1 8
8 3
7 3
B 5 3
A 3 8
B 2 7
B 1 4
A 8 1
B 1 4
B 6 3
yes
no
yes
no
no
+
secretpaths.insecretpaths.out
8 7 1
3 5
8 4
1 6
2 8
1 8
8 3
7 3
B 5 3
A 3 8
B 2 7
B 1 4
A 8 1
B 1 4
B 6 3
yes
yes
no
yes
no


+centered image +
+ +**Εξήγηση**: + +Στο πρώτο παράδειγμα είναι $$K = 0$$, επομένως η σημασία των χαρακτήρων “Α” και “Β” δεν αλλάζει — το +“Α” συμβολίζει πάντα την καταστροφή δρόμου και το “Β” συμβολίζει πάντα την ερώτηση. Επομένως, οι +εκτελούμενες ενέργειες είναι κατά σειρά: + +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$5$$ και $$3$$; Η απάντηση είναι ναι. +- Καταστροφή του δρόμου μεταξύ των πόλεων $$3$$ και $$8$$. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$2$$ και $$7$$; Η απάντηση είναι όχι. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$1$$ και $$4$$; Η απάντηση είναι ναι. +- Καταστροφή του δρόμου μεταξύ των πόλεων $$8$$ και $$1$$. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$1$$ και $$4$$; Η απάντηση τώρα είναι όχι. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$6$$ και $$3$$; Η απάντηση είναι όχι. + +Στο δεύτερο παράδειγμα είναι $$K = 1$$, επομένως η σημασία των χαρακτήρων “Α” και “Β” αντιστρέφεται κάθε +φορά που μια ερώτηση έχει θετική απάντηση. Οι εκτελούμενες ενέργειες είναι κατά σειρά: + +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$5$$ και $$3$$; Η απάντηση είναι ναι. +Μετά από αυτή την απάντηση αντιστρέφεται η σημασία των “Α” και “Β”. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$3$$ και $$8$$; Η απάντηση είναι ναι. +Μετά από αυτή την απάντηση αντιστρέφεται ξανά η σημασία των “Α” και “Β”. +- Καταστροφή του δρόμου μεταξύ των πόλεων $$3$$ και $$8$$. +- Καταστροφή του δρόμου μεταξύ των πόλεων $$2$$ και $$4$$. +Ο δρόμος αυτός δεν υπάρχει, επομένως δε γίνεται τίποτα. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$2$$ και $$7$$; Η απάντηση είναι όχι. +Μετά από αυτή την απάντηση δεν αντιστρέφεται η σημασία των “Α” και “Β”. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$1$$ και $$4$$; Η απάντηση είναι ναι. +Μετά από αυτή την απάντηση αντιστρέφεται η σημασία των “Α” και “Β”. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$6$$ και $$7$$; Η απάντηση είναι όχι. + +## Περιορισμοί: + + * $$2 \le N \le 100.000$$ και $$2 \le M \le 500.000$$. + * $$1 \le U \le N$$ και $$1 \le V \le N$$ για κάθε ενέργεια, και επιπλέον $$U \neq V$$. + * Όριο χρόνου εκτέλεσης: 1 sec. + * Όριο μνήμης: 256 MB. + +## Υποπροβλήματα: + +- Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, θα είναι $$K = 0$$ και όλες οι ενέργειες καταστροφής θα +προηγούνται των ερωτήσεων. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$50\%$$, θα είναι $$K = 0$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$20\%$$, θα είναι $$N \le 1000$$ και $$M \le 5000$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$50\%$$, θα είναι $$N \le 30.000$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$65\%$$, θα είναι $$N \le 70.000$$. + diff --git a/contests/_35-PDP/camp_c-sumij-statement.md b/contests/_35-PDP/camp_c-sumij-statement.md new file mode 100755 index 00000000..0e21c71e --- /dev/null +++ b/contests/_35-PDP/camp_c-sumij-statement.md @@ -0,0 +1,62 @@ +--- +layout: statement +codename: sumij +--- + +## Πρόβλημα: + +Δίνεται ένας πίνακας αποτελούμενος από $$N$$ ακέραιους αριθμούς: $$A_1, A_2, \ldots, A_N$$. Ζητείται να βρεθούν δύο +θέσεις $$i$$ και $$j$$ στον πίνακα ($$1 \le i \lt j \le N$$) τέτοιες ώστε $$A_i + A_{i+1} + \ldots + A_j = i + j$$. +Αν υπάρχουν περισσότερα ζεύγη $$i$$ και $$j$$ που να ικανοποιούν τα παραπάνω, ζητείται το ζεύγος που έχει τη μεγαλύτερη διαφορά $$j − i$$. +Αν υπάρχουν περισσότερα ζεύγη με ίση μέγιστη διαφορά, ζητείται αυτό που έχει τη μικρότερη τιμή του $$i$$. + +## Αρχεία εισόδου (sumij.in): + +Στην πρώτη γραμμή της εισόδου θα υπάρχει ένας θετικός ακέραιος $$T$$, το πλήθος των ερωτημάτων. +Σε καθένα από τα επόμενα $$T$$ ερωτήματα, θα υπάρχει στην πρώτη γραμμή ένας φυσικός αριθμός $$N$$: +το πλήθος των στοιχείων του πίνακα. +Η δεύτερη γραμμή θα περιέχει ακριβώς $$N$$ ακέραιους ακεραίους $$Α_1, Α_2, \ldots, A_N$$, +χωρισμένους ανά δύο με ένα κενό διάστημα. + +## Αρχεία εξόδου (sumij.out): + +Η έξοδος θα πρέπει να περιέχει $$T$$ γραμμές. Κάθε γραμμή θα περιέχει δύο αριθμούς χωρισμένους μεταξύ τους +με ένα κενό διάστημα, που δηλώνουν το ζητούμενο ζεύγος θέσεων $$i$$ και $$j$$ για το αντίστοιχο ερώτημα. Αν δεν +υπάρχει ζεύγος που να ικανοποιεί τους περιορισμούς της εκφώνησης, τότε η γραμμή πρέπει να περιέχει τη +λέξη **“IMPOSSIBLE”**. + +## Παράδειγμα αρχείων εισόδου - εξόδου: + +| **sumij.in** | **sumij.out** | +| :--- | :--- | +| 3 10
5 2 8 3 3 5 1 8 5 7
11
1 7 7 1 -4 8 9 7 9 4 5
6
1 2 -2 5 2 4 | 6 8
IMPOSSIBLE
2 5 | +{:.table_with_monospace_font} + +**Εξήγηση παραδείγματος:** + +Το παράδειγμα έχει τρία ερωτήματα. +Στο πρώτο ερώτημα, το μοναδικό τμήμα του πίνακα που έχει τη ζητούμενη ιδιότητα είναι αυτό μεταξύ των +θέσεων $$i = 6$$ και $$j = 8$$, το οποίο έχει άθροισμα $$5 + 1 + 8 = 14 = i + j$$. +Στο δεύτερο ερώτημα, κανένα τμήμα +του πίνακα δεν έχει τη ζητούμενη ιδιότητα. +Τέλος, στο τρίτο ερώτημα, υπάρχουν τρία τμήματα του πίνακα +που έχουν τη ζητούμενη ιδιότητα: + +- για $$i = 1$$ και $$j = 2$$ είναι $$1 + 2 = 3 = i + j$$, +- για $$i = 2$$ και $$j = 5$$ είναι $$2 − 2 + 5 + 2 = 7 = i + j$$ και +- για $$i = 3$$ και $$j = 6$$ είναι $$−2 + 5 + 2 + 4 = 9 = i + j$$. +Μεταξύ των τριών, το πρώτο έχει $$j − i = 1$$ ενώ τα άλλα δύο έχουν $$j − i = 2$$. Μεταξύ των δύο που έχουν τη +μέγιστη τιμή $$j − i$$, η ζητούμενη απάντηση είναι αυτή που έχει τη μικρότερη τιμή του $$i$$, δηλαδή το $$i = 2, j = 5$$. + +## Περιορισμοί: + +- $$1 \le T \le 5$$. +- $$1 \le N \le 1.000.000$$ και το άθροισμα των $$N$$ όλων των ερωτημάτων δε θα υπερβαίνει το $$2.000.000$$. +- $$−1000 \le A_i \le 1000$$ για κάθε $$i$$. +- Όριο χρόνου εκτέλεσης: 1 sec. +- Όριο μνήμης: 64 MB. + +## Υποπροβλήματα: + +- Για περιπτώσεις ελέγχου συνολικής αξίας $$30\%$$, θα είναι $$N \le 1.000$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$60\%$$, θα είναι $$N \le 10.000$$. From 4fa1ee2fba67807376fce27d23e7c263343cefa8 Mon Sep 17 00:00:00 2001 From: kbokis Date: Sun, 5 May 2024 18:56:14 +0300 Subject: [PATCH 2/2] revision1:subtask/mem-time limits/etc --- _data/contests/35-PDP.yml | 24 +- assets/35-camp-d-d1c1.svg | 101 +-- assets/35-camp-d-d2c2.svg | 779 +++++++++--------- assets/35-camp-d-d2c2a.svg | 60 +- assets/35-camp-d-d2c2b.svg | 154 ++-- assets/35-camp-d-d2c2c.svg | 219 +++-- .../_35-PDP/camp_c-evencycle-statement.md | 11 +- contests/_35-PDP/camp_c-oddsum-statement.md | 17 +- .../_35-PDP/camp_c-secretpaths-statement.md | 44 +- contests/_35-PDP/camp_c-sumij-statement.md | 17 +- 10 files changed, 705 insertions(+), 721 deletions(-) diff --git a/_data/contests/35-PDP.yml b/_data/contests/35-PDP.yml index 0c8ffb53..cdfc432b 100755 --- a/_data/contests/35-PDP.yml +++ b/_data/contests/35-PDP.yml @@ -73,39 +73,39 @@ conflicts: on_judge: true secretpaths: - full_name: "Μυστικοί Δρόμοι" + full_name: "SECRETPATHS" stage: "camp_c" statement_pdf_url: "https://drive.google.com/file/d/1IxWUA2IFecdPA6Dp4cfM14fMM3a8NmhL/view" statement_md: true - testcases_url: "" + testcases_url: "https://drive.google.com/file/d/1HSFZLk8MGBYhzVr5T2Zftbafa-2lD6Ha/view" codes_in_git: false - solution_tags: [ ] + solution_tags: [ trees, small-to-large merging, decremental connectivity, bfs, sorting, union-find ] sumij: - full_name: "sumij" + full_name: "SUMIJ" stage: "camp_c" statement_pdf_url: "https://drive.google.com/file/d/1ggQCu5XyJawj-mOCyxjQzR-eZ288s6UL/view" statement_md: true - testcases_url: "" + testcases_url: "https://drive.google.com/file/d/1_sokO2v3_RVBAGCJ2gvlffpDcJgu7Ytq/view" codes_in_git: false - solution_tags: [ ] + solution_tags: [ hash table, prefix sums, bst, sorting ] evencycle: - full_name: "evencycle" + full_name: "EVENCYCLE" stage: "camp_c" statement_pdf_url: "https://drive.google.com/file/d/1hOutQSWs1OpbOVw7QZb1jgjbh5wz1pA3/view" statement_md: true - testcases_url: "" + testcases_url: "https://drive.google.com/file/d/1xYNBm830H_dA02YQRcExno75XVeMNjXV/view" codes_in_git: false - solution_tags: [ ] + solution_tags: [ dfs, dfs-tree, cycles ] oddsum: - full_name: "oddsum" + full_name: "ODDSUM" stage: "camp_c" statement_pdf_url: "https://drive.google.com/file/d/1gfjNdPQdHFC_jAvLvnUUEItXTiRH8jWY/view" statement_md: true - testcases_url: "" + testcases_url: "https://drive.google.com/file/d/1ZaLdLm2JAgUn_nfdapL9BtCU8pu2hwu0/view" codes_in_git: false - solution_tags: [ ] + solution_tags: [ greedy ] diff --git a/assets/35-camp-d-d1c1.svg b/assets/35-camp-d-d1c1.svg index 9e316b5c..b283a49d 100755 --- a/assets/35-camp-d-d1c1.svg +++ b/assets/35-camp-d-d1c1.svg @@ -36,16 +36,16 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.35" - inkscape:cx="209.17221" + inkscape:cx="-266.54208" inkscape:cy="522.96124" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" - inkscape:window-width="902" - inkscape:window-height="659" - inkscape:window-x="-4" - inkscape:window-y="11" - inkscape:window-maximized="0" /> + inkscape:window-width="1366" + inkscape:window-height="705" + inkscape:window-x="-8" + inkscape:window-y="-8" + inkscape:window-maximized="1" /> @@ -54,7 +54,7 @@ image/svg+xml - + @@ -64,7 +64,51 @@ id="layer1" transform="translate(-15.091498,-36.168875)"> + id="g939"> + + + + + + + + + 6 - - - - - - - diff --git a/assets/35-camp-d-d2c2.svg b/assets/35-camp-d-d2c2.svg index 679f2375..7f4b6ae7 100755 --- a/assets/35-camp-d-d2c2.svg +++ b/assets/35-camp-d-d2c2.svg @@ -36,15 +36,15 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.35" - inkscape:cx="529.01748" - inkscape:cy="530.49194" + inkscape:cx="53.303194" + inkscape:cy="484.48998" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" - inkscape:window-width="992" - inkscape:window-height="659" - inkscape:window-x="-4" - inkscape:window-y="11" + inkscape:window-width="1366" + inkscape:window-height="705" + inkscape:window-x="-8" + inkscape:window-y="-8" inkscape:window-maximized="1" /> @@ -63,397 +63,384 @@ inkscape:groupmode="layer" id="layer1" transform="translate(4.5632632,-44.484355)"> + + + + + + + + + + + - - - 1 - - - - - - 4 - - 3 - - 2 - - - - - 5 - - 4 - - 1 - - 2 - - 3 - - - - - - - - - - 2 - - 5 - - 6 - - 4 - - 3 - - - 1 - - 7 - - - - - - - - + id="g962" + transform="translate(-9.827381,46.113095)"> + + 1 + + 7 + + + + + + + + 1 + + 4 + + 3 + + 2 + + 5 + + 4 + + 1 + + 2 + + 3 + + 2 + + 5 + + 6 + + 4 + + 3 diff --git a/assets/35-camp-d-d2c2a.svg b/assets/35-camp-d-d2c2a.svg index cb2c0637..c92a4910 100755 --- a/assets/35-camp-d-d2c2a.svg +++ b/assets/35-camp-d-d2c2a.svg @@ -36,7 +36,7 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.35" - inkscape:cx="1771.2672" + inkscape:cx="1295.5529" inkscape:cy="-35.377647" inkscape:document-units="mm" inkscape:current-layer="layer1" @@ -54,7 +54,7 @@ image/svg+xml - + @@ -64,23 +64,7 @@ id="layer1" transform="translate(4.5632632,-44.484355)"> - - 1 + id="g866"> + + + 1 2 - diff --git a/assets/35-camp-d-d2c2b.svg b/assets/35-camp-d-d2c2b.svg index 560d8494..c583f1b7 100755 --- a/assets/35-camp-d-d2c2b.svg +++ b/assets/35-camp-d-d2c2b.svg @@ -36,7 +36,7 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.35" - inkscape:cx="574.18162" + inkscape:cx="98.467334" inkscape:cy="-33.844877" inkscape:document-units="mm" inkscape:current-layer="layer1" @@ -54,7 +54,7 @@ image/svg+xml - + @@ -64,130 +64,132 @@ id="layer1" transform="translate(7.614625,-48.669637)"> + id="g887"> + + + + + + + + 5 4 1 2 + x="118.54108" + y="76.06723">2 3 - - - - - - diff --git a/assets/35-camp-d-d2c2c.svg b/assets/35-camp-d-d2c2c.svg index a542233a..7b17720a 100755 --- a/assets/35-camp-d-d2c2c.svg +++ b/assets/35-camp-d-d2c2c.svg @@ -36,7 +36,7 @@ inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.35" - inkscape:cx="854.28574" + inkscape:cx="378.57145" inkscape:cy="67.68773" inkscape:document-units="mm" inkscape:current-layer="layer1" @@ -54,7 +54,7 @@ image/svg+xml - + @@ -64,166 +64,161 @@ id="layer1" transform="translate(81.725507,35.591487)"> + id="g993"> + + + 1 + + 7 + + + + + 2 + x="-68.962669" + y="27.335882">2 5 6 4 3 - - - 1 - - 7 - - - - - - - diff --git a/contests/_35-PDP/camp_c-evencycle-statement.md b/contests/_35-PDP/camp_c-evencycle-statement.md index cb70779d..e5e72897 100755 --- a/contests/_35-PDP/camp_c-evencycle-statement.md +++ b/contests/_35-PDP/camp_c-evencycle-statement.md @@ -15,7 +15,7 @@ codename: evencycle φυσικοί αριθμοί $$N$$ και $$M$$ χωρισμένοι μεταξύ τους με ένα κενό διάστημα: το πλήθος των κορυφών και το πλήθος των ακμών του γράφου. Θα ακολουθούν $$M$$ γραμμές, κάθε μία από τις οποίες θα περιέχει δύο φυσικούς αριθμούς $$U$$ και $$V$$, χωρισμένους μεταξύ τους με ένα κενό διάστημα, που παριστάνουν μια ακμή -μεταξύ των κορυφών $$U$$ και $$V$$. Θεωρήστε ότι οι κορυφές είναι αριθμημένες από $$1$$ μέχρι $$Ν$$ και ότι δε θα +μεταξύ των κορυφών $$U$$ και $$V$$. Θεωρήστε ότι οι κορυφές είναι αριθμημένες από $$1$$ μέχρι $$N$$ και ότι δε θα δίνονται δύο ακμές που να ενώνουν τις ίδιες κορυφές του γράφου. ## Αρχεία εξόδου (evencycle.out): @@ -35,7 +35,7 @@ codename: evencycle Όλες οι λέξεις και οι αριθμοί σε κάθε γραμμή της εξόδου θα πρέπει να χωρίζονται ανά δύο μεταξύ τους με ένα κενό διάστημα. -## Παράδειγμα αρχείων εισόδου - εξόδου: +## Παράδειγμα αρχείου εισόδου - εξόδου: Για τη διευκόλυνσή σας, στο παράδειγμα που ακολουθεί είναι διαχωρισμένα τα τρία ερωτήματα εισόδου μεταξύ τους. @@ -56,10 +56,8 @@ codename: evencycle - $$1 \le U \le N$$ και $$1 \le V \le N$$ για κάθε δοθείσα ακμή, και επιπλέον $$U \neq V$$. - Το άθροισμα των $$N$$ όλων των ερωτημάτων δε θα υπερβαίνει το $$200.000$$ και το άθροισμα των $$M$$ όλων των ερωτημάτων δε θα υπερβαίνει το $$400.000$$. -- Όριο χρόνου εκτέλεσης: 1 sec. -- Όριο μνήμης: 256 MB. -## Υποπροβλήματα: +## Subtasks: - Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, θα είναι $$N \le 10$$. - Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, θα είναι $$10 \lt N \le 100$$ και $$M \le 200$$. @@ -71,3 +69,6 @@ codename: evencycle άλλες κορυφές (και θα υπάρχουν κορυφές που συνδέονται ακριβώς με τρεις). - Για τις υπόλοιπες περιπτώσεις ελέγχου, συνολικής αξίας $$22\%$$, κανείς από τους παραπάνω ειδικούς περιορισμούς δε θα ισχύει. + +**Μέγιστος χρόνος εκτέλεσης**: $$1$$ sec.
+**Μέγιστη διαθέσιμη μνήμη**: $$256$$ MB. diff --git a/contests/_35-PDP/camp_c-oddsum-statement.md b/contests/_35-PDP/camp_c-oddsum-statement.md index 5980fe8f..346e2dbe 100755 --- a/contests/_35-PDP/camp_c-oddsum-statement.md +++ b/contests/_35-PDP/camp_c-oddsum-statement.md @@ -5,7 +5,7 @@ codename: oddsum ## Πρόβλημα: -Δίνεται ένας πίνακας αποτελούμενος από $$N$$ ακέραιους αριθμούς: $$Α_1, Α_2, \ldots, A_N$$. +Δίνεται ένας πίνακας αποτελούμενος από $$N$$ ακέραιους αριθμούς: $$A_1, A_2, \ldots, A_N$$. Μπορείτε να επιλέξετε όσους από αυτούς τους αριθμούς θέλετε. Το ζητούμενο είναι το άθροισμα αυτών που θα επιλέξετε να είναι περιττός αριθμός και να είναι το μέγιστο δυνατό. @@ -14,7 +14,7 @@ codename: oddsum Στην πρώτη γραμμή της εισόδου θα υπάρχει ένας θετικός ακέραιος $$T$$, το πλήθος των ερωτημάτων. Σε καθένα από τα επόμενα $$T$$ ερωτήματα, θα υπάρχει στην πρώτη γραμμή ένας φυσικός αριθμός $$N$$: το πλήθος -των στοιχείων του πίνακα. Η δεύτερη γραμμή θα περιέχει ακριβώς $$N$$ ακέραιους ακεραίους $$Α_1, Α_2, \ldots, A_N$$, +των στοιχείων του πίνακα. Η δεύτερη γραμμή θα περιέχει ακριβώς $$N$$ ακέραιους ακεραίους $$A_1, A_2, \ldots, A_N$$, χωρισμένους ανά δύο με ένα κενό διάστημα. ## Αρχεία εξόδου (oddsum.out): @@ -31,9 +31,7 @@ codename: oddsum | 3
4
-2 2 -3 1
3
2 -5 -3
5
2 4 6 8 4|3
-1
IMPOSSIBLE | {:.table_with_monospace_font} -**Εξήγηση παραδείγματος:** - -Το παράδειγμα έχει τρία ερωτήματα. +*Εξήγηση παραδείγματος:* Το παράδειγμα έχει τρία ερωτήματα. Στο πρώτο ερώτημα, μπορούμε να επιλέξουμε τους αριθμούς $$2$$ και $$1$$, με άθροισμα $$3$$. Στο δεύτερο ερώτημα, το καλύτερο που μπορούμε να κάνουμε είναι να επιλέξουμε τους αριθμούς $$2$$ και $$−3$$, με άθροισμα $$−1$$. Τέλος, στο τρίτο ερώτημα, καμία επιλογή αριθμών δεν οδηγεί σε άθροισμα που να είναι περιττός αριθμός. @@ -44,10 +42,11 @@ codename: oddsum - $$1 \le N \le 1.000.000$$ και το άθροισμα των $$N$$ όλων των ερωτημάτων δε θα υπερβαίνει το $$2.000.000$$. - Η απόλυτη τιμή του αθροίσματος οποιουδήποτε υποσυνόλου των αριθμών του πίνακα $$A$$ δε θα υπερβαίνει το $$1.000.000.000$$. -- Όριο χρόνου εκτέλεσης: 1 sec. -- Όριο μνήμης: 64 MB. -## Υποπροβλήματα: +## Sybtasks: - Για περιπτώσεις ελέγχου συνολικής αξίας $$20\%$$, θα είναι $$N \le 20$$. -- Για περιπτώσεις ελέγχου συνολικής αξίας $$50\%$$, θα είναι $$N \le 1000$$. \ No newline at end of file +- Για περιπτώσεις ελέγχου συνολικής αξίας $$50\%$$, θα είναι $$N \le 1.000$$. + +**Μέγιστος χρόνος εκτέλεσης**: $$1$$ sec.
+**Μέγιστη διαθέσιμη μνήμη**: $$64$$ MB. diff --git a/contests/_35-PDP/camp_c-secretpaths-statement.md b/contests/_35-PDP/camp_c-secretpaths-statement.md index acc93e01..346b41c2 100755 --- a/contests/_35-PDP/camp_c-secretpaths-statement.md +++ b/contests/_35-PDP/camp_c-secretpaths-statement.md @@ -33,7 +33,7 @@ codename: secretpaths Ακολουθούν $$N−1$$ γραμμές που κάθε μία αντιστοιχεί σε ένα μυστικό δρόμο. Κάθε μία από αυτές περιέχει δύο ακέραιους αριθμούς $$U$$ και $$V$$ χωρισμένους μεταξύ τους με ένα κενό διάστημα, που δηλώνουν ότι αρχικά υπάρχει ένας μυστικός δρόμος που συνδέει απευθείας τις πόλεις $$U$$ και $$V$$. Θεωρήστε ότι οι πόλεις είναι -αριθμημένες από $$1$$ μέχρι $$Ν$$. +αριθμημένες από $$1$$ μέχρι $$N$$. Ακολουθούν $$M$$ γραμμές που κάθε μία αντιστοιχεί σε μία ενέργεια που ζητάει ο Φίλιππος. Κάθε μία από αυτές περιέχει ένα χαρακτήρα $$T$$ και δύο ακέραιους αριθμούς $$U$$ και $$V$$. Ο χαρακτήρας είναι ένα από τα @@ -54,8 +54,8 @@ codename: secretpaths Η έξοδος θα πρέπει να περιέχει μία γραμμή για κάθε ενέργεια που ζητάει ο Φίλιππος και που αντιστοιχεί σε ερώτηση. Η γραμμή θα πρέπει να περιέχει μία λέξη που θα είναι: -- “yes”, αν είναι δυνατή η μετάβαση μεταξύ των δύο πόλεων, ή -- “no”, αν δεν είναι δυνατή η μετάβαση. +- **“yes”**, αν είναι δυνατή η μετάβαση μεταξύ των δύο πόλεων, ή +- **“no”**, αν δεν είναι δυνατή η μετάβαση. ## Παραδείγματα αρχείων εισόδου - εξόδου: @@ -68,49 +68,47 @@ codename: secretpaths centered image -**Εξήγηση**: - -Στο πρώτο παράδειγμα είναι $$K = 0$$, επομένως η σημασία των χαρακτήρων “Α” και “Β” δεν αλλάζει — το +*Εξήγηση Παραδειγμάτων*: Στο πρώτο παράδειγμα είναι $$K = 0$$, επομένως η σημασία των χαρακτήρων “Α” και “Β” δεν αλλάζει — το “Α” συμβολίζει πάντα την καταστροφή δρόμου και το “Β” συμβολίζει πάντα την ερώτηση. Επομένως, οι εκτελούμενες ενέργειες είναι κατά σειρά: -- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$5$$ και $$3$$; Η απάντηση είναι ναι. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$5$$ και $$3$$; Η απάντηση είναι **ναι**. - Καταστροφή του δρόμου μεταξύ των πόλεων $$3$$ και $$8$$. -- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$2$$ και $$7$$; Η απάντηση είναι όχι. -- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$1$$ και $$4$$; Η απάντηση είναι ναι. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$2$$ και $$7$$; Η απάντηση είναι **όχι**. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$1$$ και $$4$$; Η απάντηση είναι **ναι**. - Καταστροφή του δρόμου μεταξύ των πόλεων $$8$$ και $$1$$. -- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$1$$ και $$4$$; Η απάντηση τώρα είναι όχι. -- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$6$$ και $$3$$; Η απάντηση είναι όχι. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$1$$ και $$4$$; Η απάντηση τώρα είναι **όχι**. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$6$$ και $$3$$; Η απάντηση είναι **όχι**. Στο δεύτερο παράδειγμα είναι $$K = 1$$, επομένως η σημασία των χαρακτήρων “Α” και “Β” αντιστρέφεται κάθε φορά που μια ερώτηση έχει θετική απάντηση. Οι εκτελούμενες ενέργειες είναι κατά σειρά: -- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$5$$ και $$3$$; Η απάντηση είναι ναι. -Μετά από αυτή την απάντηση αντιστρέφεται η σημασία των “Α” και “Β”. -- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$3$$ και $$8$$; Η απάντηση είναι ναι. -Μετά από αυτή την απάντηση αντιστρέφεται ξανά η σημασία των “Α” και “Β”. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$5$$ και $$3$$; Η απάντηση είναι **ναι**. +Μετά από αυτή την απάντηση **αντιστρέφεται** η σημασία των “Α” και “Β”. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$3$$ και $$8$$; Η απάντηση είναι **ναι**. +Μετά από αυτή την απάντηση **αντιστρέφεται** ξανά η σημασία των “Α” και “Β”. - Καταστροφή του δρόμου μεταξύ των πόλεων $$3$$ και $$8$$. - Καταστροφή του δρόμου μεταξύ των πόλεων $$2$$ και $$4$$. Ο δρόμος αυτός δεν υπάρχει, επομένως δε γίνεται τίποτα. -- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$2$$ και $$7$$; Η απάντηση είναι όχι. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$2$$ και $$7$$; Η απάντηση είναι **όχι**. Μετά από αυτή την απάντηση δεν αντιστρέφεται η σημασία των “Α” και “Β”. -- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$1$$ και $$4$$; Η απάντηση είναι ναι. -Μετά από αυτή την απάντηση αντιστρέφεται η σημασία των “Α” και “Β”. -- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$6$$ και $$7$$; Η απάντηση είναι όχι. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$1$$ και $$4$$; Η απάντηση είναι **ναι**. +Μετά από αυτή την απάντηση **αντιστρέφεται** η σημασία των “Α” και “Β”. +- Ερώτηση: είναι δυνατή η μετάβαση μεταξύ των πόλεων $$6$$ και $$7$$; Η απάντηση είναι **όχι**. ## Περιορισμοί: * $$2 \le N \le 100.000$$ και $$2 \le M \le 500.000$$. * $$1 \le U \le N$$ και $$1 \le V \le N$$ για κάθε ενέργεια, και επιπλέον $$U \neq V$$. - * Όριο χρόνου εκτέλεσης: 1 sec. - * Όριο μνήμης: 256 MB. -## Υποπροβλήματα: +## Subtasks: - Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, θα είναι $$K = 0$$ και όλες οι ενέργειες καταστροφής θα προηγούνται των ερωτήσεων. - Για περιπτώσεις ελέγχου συνολικής αξίας $$50\%$$, θα είναι $$K = 0$$. -- Για περιπτώσεις ελέγχου συνολικής αξίας $$20\%$$, θα είναι $$N \le 1000$$ και $$M \le 5000$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$20\%$$, θα είναι $$N \le 1.000$$ και $$M \le 5.000$$. - Για περιπτώσεις ελέγχου συνολικής αξίας $$50\%$$, θα είναι $$N \le 30.000$$. - Για περιπτώσεις ελέγχου συνολικής αξίας $$65\%$$, θα είναι $$N \le 70.000$$. +**Μέγιστος χρόνος εκτέλεσης**: $$1$$ sec.
+**Μέγιστη διαθέσιμη μνήμη**: $$256$$ MB. diff --git a/contests/_35-PDP/camp_c-sumij-statement.md b/contests/_35-PDP/camp_c-sumij-statement.md index 0e21c71e..128cc221 100755 --- a/contests/_35-PDP/camp_c-sumij-statement.md +++ b/contests/_35-PDP/camp_c-sumij-statement.md @@ -15,7 +15,7 @@ codename: sumij Στην πρώτη γραμμή της εισόδου θα υπάρχει ένας θετικός ακέραιος $$T$$, το πλήθος των ερωτημάτων. Σε καθένα από τα επόμενα $$T$$ ερωτήματα, θα υπάρχει στην πρώτη γραμμή ένας φυσικός αριθμός $$N$$: το πλήθος των στοιχείων του πίνακα. -Η δεύτερη γραμμή θα περιέχει ακριβώς $$N$$ ακέραιους ακεραίους $$Α_1, Α_2, \ldots, A_N$$, +Η δεύτερη γραμμή θα περιέχει ακριβώς $$N$$ ακέραιους ακεραίους $$A_1, A_2, \ldots, A_N$$, χωρισμένους ανά δύο με ένα κενό διάστημα. ## Αρχεία εξόδου (sumij.out): @@ -29,12 +29,10 @@ codename: sumij | **sumij.in** | **sumij.out** | | :--- | :--- | -| 3 10
5 2 8 3 3 5 1 8 5 7
11
1 7 7 1 -4 8 9 7 9 4 5
6
1 2 -2 5 2 4 | 6 8
IMPOSSIBLE
2 5 | +| 3
10
5 2 8 3 3 5 1 8 5 7
11
1 7 7 1 -4 8 9 7 9 4 5
6
1 2 -2 5 2 4 | 6 8
IMPOSSIBLE
2 5 | {:.table_with_monospace_font} -**Εξήγηση παραδείγματος:** - -Το παράδειγμα έχει τρία ερωτήματα. +*Εξήγηση παραδείγματος:* Το παράδειγμα έχει τρία ερωτήματα. Στο πρώτο ερώτημα, το μοναδικό τμήμα του πίνακα που έχει τη ζητούμενη ιδιότητα είναι αυτό μεταξύ των θέσεων $$i = 6$$ και $$j = 8$$, το οποίο έχει άθροισμα $$5 + 1 + 8 = 14 = i + j$$. Στο δεύτερο ερώτημα, κανένα τμήμα @@ -52,11 +50,12 @@ codename: sumij - $$1 \le T \le 5$$. - $$1 \le N \le 1.000.000$$ και το άθροισμα των $$N$$ όλων των ερωτημάτων δε θα υπερβαίνει το $$2.000.000$$. -- $$−1000 \le A_i \le 1000$$ για κάθε $$i$$. -- Όριο χρόνου εκτέλεσης: 1 sec. -- Όριο μνήμης: 64 MB. +- $$−1.000 \le A_i \le 1.000$$ για κάθε $$i$$. -## Υποπροβλήματα: +## Subtasks: - Για περιπτώσεις ελέγχου συνολικής αξίας $$30\%$$, θα είναι $$N \le 1.000$$. - Για περιπτώσεις ελέγχου συνολικής αξίας $$60\%$$, θα είναι $$N \le 10.000$$. + +**Μέγιστος χρόνος εκτέλεσης**: $$1$$ sec.
+**Μέγιστη διαθέσιμη μνήμη**: $$64$$ MB.