diff --git a/_data/contests/35-PDP.yml b/_data/contests/35-PDP.yml index aa0efab0..cdfc432b 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: "SECRETPATHS" + stage: "camp_c" + statement_pdf_url: "https://drive.google.com/file/d/1IxWUA2IFecdPA6Dp4cfM14fMM3a8NmhL/view" + statement_md: true + testcases_url: "https://drive.google.com/file/d/1HSFZLk8MGBYhzVr5T2Zftbafa-2lD6Ha/view" + codes_in_git: false + solution_tags: [ trees, small-to-large merging, decremental connectivity, bfs, sorting, union-find ] + +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: "https://drive.google.com/file/d/1_sokO2v3_RVBAGCJ2gvlffpDcJgu7Ytq/view" + codes_in_git: false + solution_tags: [ hash table, prefix sums, bst, sorting ] + +evencycle: + full_name: "EVENCYCLE" + stage: "camp_c" + statement_pdf_url: "https://drive.google.com/file/d/1hOutQSWs1OpbOVw7QZb1jgjbh5wz1pA3/view" + statement_md: true + testcases_url: "https://drive.google.com/file/d/1xYNBm830H_dA02YQRcExno75XVeMNjXV/view" + codes_in_git: false + solution_tags: [ dfs, dfs-tree, cycles ] + + +oddsum: + full_name: "ODDSUM" + stage: "camp_c" + statement_pdf_url: "https://drive.google.com/file/d/1gfjNdPQdHFC_jAvLvnUUEItXTiRH8jWY/view" + statement_md: true + testcases_url: "https://drive.google.com/file/d/1ZaLdLm2JAgUn_nfdapL9BtCU8pu2hwu0/view" + codes_in_git: false + solution_tags: [ greedy ] + diff --git a/assets/35-camp-d-d1c1.svg b/assets/35-camp-d-d1c1.svg new file mode 100755 index 00000000..b283a49d --- /dev/null +++ b/assets/35-camp-d-d1c1.svg @@ -0,0 +1,280 @@ + + + + + + + + + + + + + + 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..7f4b6ae7 --- /dev/null +++ b/assets/35-camp-d-d2c2.svg @@ -0,0 +1,446 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + 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 new file mode 100755 index 00000000..c92a4910 --- /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..c583f1b7 --- /dev/null +++ b/assets/35-camp-d-d2c2b.svg @@ -0,0 +1,195 @@ + + + + + + + + + + + + + + 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..7b17720a --- /dev/null +++ b/assets/35-camp-d-d2c2c.svg @@ -0,0 +1,224 @@ + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + 1 + + 7 + + + + + + + 2 + + 5 + + 6 + + 4 + + 3 + + + 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..e5e72897 --- /dev/null +++ b/contests/_35-PDP/camp_c-evencycle-statement.md @@ -0,0 +1,74 @@ +--- +layout: statement +codename: evencycle +--- + +## Πρόβλημα: + +Δίνεται ένας μη κατευθυνόμενος γράφος αποτελούμενος από $$N$$ κορυφές και $$M$$ ακμές. Ζητείται να βρείτε +έναν κύκλο με άρτιο πλήθος ακμών, αν υπάρχει. + +## Αρχεία εισόδου (evencycle.in): + +Στην πρώτη γραμμή της εισόδου θα υπάρχει ένας θετικός ακέραιος $$T$$, το πλήθος των ερωτημάτων που θα +πρέπει να απαντήσετε. Σε καθένα από τα επόμενα $$T$$ ερωτήματα, θα υπάρχουν στην πρώτη γραμμή δύο +φυσικοί αριθμοί $$N$$ και $$M$$ χωρισμένοι μεταξύ τους με ένα κενό διάστημα: το πλήθος των κορυφών και το +πλήθος των ακμών του γράφου. Θα ακολουθούν $$M$$ γραμμές, κάθε μία από τις οποίες θα περιέχει δύο +φυσικούς αριθμούς $$U$$ και $$V$$, χωρισμένους μεταξύ τους με ένα κενό διάστημα, που παριστάνουν μια ακμή +μεταξύ των κορυφών $$U$$ και $$V$$. Θεωρήστε ότι οι κορυφές είναι αριθμημένες από $$1$$ μέχρι $$N$$ και ότι δε θα +δίνονται δύο ακμές που να ενώνουν τις ίδιες κορυφές του γράφου. + +## Αρχεία εξόδου (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$$. + +## Subtasks: + +- Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, θα είναι $$N \le 10$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, θα είναι $$10 \lt N \le 100$$ και $$M \le 200$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$22\%$$, οι κορυφές του γράφου θα μπορούν να χρωματιστούν με +δύο χρώματα κατά τέτοιο τρόπο ώστε να μην υπάρχει ακμή μεταξύ κορυφών του ίδιου χρώματος. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$11\%$$, κάθε κορυφή του γράφου θα συνδέεται το πολύ με δύο +άλλες κορυφές. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, κάθε κορυφή του γράφου θα συνδέεται το πολύ με τρεις +άλλες κορυφές (και θα υπάρχουν κορυφές που συνδέονται ακριβώς με τρεις). +- Για τις υπόλοιπες περιπτώσεις ελέγχου, συνολικής αξίας $$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 new file mode 100755 index 00000000..346e2dbe --- /dev/null +++ b/contests/_35-PDP/camp_c-oddsum-statement.md @@ -0,0 +1,52 @@ +--- +layout: statement +codename: oddsum +--- + +## Πρόβλημα: + +Δίνεται ένας πίνακας αποτελούμενος από $$N$$ ακέραιους αριθμούς: $$A_1, A_2, \ldots, A_N$$. +Μπορείτε να επιλέξετε +όσους από αυτούς τους αριθμούς θέλετε. Το ζητούμενο είναι το άθροισμα αυτών που θα επιλέξετε να είναι +περιττός αριθμός και να είναι το μέγιστο δυνατό. + +## Αρχεία εισόδου (oddsum.in): + +Στην πρώτη γραμμή της εισόδου θα υπάρχει ένας θετικός ακέραιος $$T$$, το πλήθος των ερωτημάτων. Σε +καθένα από τα επόμενα $$T$$ ερωτήματα, θα υπάρχει στην πρώτη γραμμή ένας φυσικός αριθμός $$N$$: το πλήθος +των στοιχείων του πίνακα. Η δεύτερη γραμμή θα περιέχει ακριβώς $$N$$ ακέραιους ακεραίους $$A_1, A_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$$. + +## Sybtasks: + +- Για περιπτώσεις ελέγχου συνολικής αξίας $$20\%$$, θα είναι $$N \le 20$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$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 new file mode 100755 index 00000000..346b41c2 --- /dev/null +++ b/contests/_35-PDP/camp_c-secretpaths-statement.md @@ -0,0 +1,114 @@ +--- +layout: statement +codename: secretpaths +--- + +## Πρόβλημα: + +Στο βασίλειο του Φίλιππου Β' του Μακεδόνος υπάρχουν $$N$$ πόλεις και $$N–1$$ μυστικοί δρόμοι, καθένας από +τους οποίους συνδέει αμφίδρομα ένα ζεύγος πόλεων. Από οποιαδήποτε πόλη μπορεί κάποιος να μεταβεί σε +οποιαδήποτε άλλη, χρησιμοποιώντας έναν ή περισσότερους μυστικούς δρόμους. + +Καθώς το βασίλειο δέχεται επίθεση, ο Φίλιππος αναγκάζεται να καταστρέψει κάποιους από τους μυστικούς +δρόμους, προκειμένου να εμποδίσει τον εχθρό να κινείται εύκολα μεταξύ των πόλεων. Αναθέτει το έργο +αυτό στον πιστό του σύμβουλο Αριστείδη, αδελφό του Παυσανία του Ορέστη. Συγκεκριμένα, ο Φίλιππος +μπορεί να του ζητήσει: + +- να καταστρέψει ένα συγκεκριμένο μυστικό δρόμο, ή +- να απαντήσει στην ερώτηση αν είναι δυνατή η μετάβαση από κάποια πόλη σε κάποια άλλη, μέσω +των μυστικών δρόμων που δεν έχουν ακόμα καταστραφεί. + +Αρχικά κανένας από τους μυστικούς δρόμους δεν έχει καταστραφεί. + +Προκειμένου η επικοινωνία ανάμεσα στον Φίλιππο και τον Αριστείδη να μην είναι εύκολο να υποκλαπεί από +τον εχθρό, οι παραπάνω δύο ενέργειες που ο Φίλιππος ζητάει από τον Αριστείδη είναι κωδικοποιημένες. +Διαβάστε προσεκτικά την περιγραφή των δεδομένων εισόδου και εξόδου του προβλήματος. + +## Αρχεία εισόδου (secretpaths.in): + +Η πρώτη γραμμή της εισόδου έχει τρεις ακέραιους αριθμούς χωρισμένους ανά δύο με ένα κενό διάστημα: το +πλήθος $$N$$ των πόλεων, το πλήθος $$M$$ των ενεργειών που ζητά ο Φίλιππος, και μια σταθερά κωδικοποίησης $$K$$ +που μπορεί να πάρει τις τιμές 0 ή 1. + +Ακολουθούν $$N−1$$ γραμμές που κάθε μία αντιστοιχεί σε ένα μυστικό δρόμο. Κάθε μία από αυτές περιέχει δύο +ακέραιους αριθμούς $$U$$ και $$V$$ χωρισμένους μεταξύ τους με ένα κενό διάστημα, που δηλώνουν ότι αρχικά +υπάρχει ένας μυστικός δρόμος που συνδέει απευθείας τις πόλεις $$U$$ και $$V$$. Θεωρήστε ότι οι πόλεις είναι +αριθμημένες από $$1$$ μέχρι $$N$$. + +Ακολουθούν $$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$$. + +## Subtasks: + +- Για περιπτώσεις ελέγχου συνολικής αξίας $$15\%$$, θα είναι $$K = 0$$ και όλες οι ενέργειες καταστροφής θα +προηγούνται των ερωτήσεων. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$50\%$$, θα είναι $$K = 0$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$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 new file mode 100755 index 00000000..128cc221 --- /dev/null +++ b/contests/_35-PDP/camp_c-sumij-statement.md @@ -0,0 +1,61 @@ +--- +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$$ ακέραιους ακεραίους $$A_1, A_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$$. +- $$−1.000 \le A_i \le 1.000$$ για κάθε $$i$$. + +## Subtasks: + +- Για περιπτώσεις ελέγχου συνολικής αξίας $$30\%$$, θα είναι $$N \le 1.000$$. +- Για περιπτώσεις ελέγχου συνολικής αξίας $$60\%$$, θα είναι $$N \le 10.000$$. + +**Μέγιστος χρόνος εκτέλεσης**: $$1$$ sec.
+**Μέγιστη διαθέσιμη μνήμη**: $$64$$ MB.