Skip to content

Commit 827e388

Browse files
committed
add b phase common tasks (instead of bgym and blyk)
1 parent c7f7032 commit 827e388

File tree

3 files changed

+98
-0
lines changed

3 files changed

+98
-0
lines changed

_includes/single_year.md

100644100755
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
{% include single_stage.md stage="a" stage_title="Α' Φάση" %}
1010

11+
{% include single_stage.md stage="b" stage_title="Β' Φάση" %}
12+
1113
{% include single_stage.md stage="bgym" stage_title="Β' Φάση γυμνασίου" %}
1214

1315
{% include single_stage.md stage="blyk" stage_title="Β' Φάση λυκείου" %}

_layouts/statement.html

100644100755
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
{% assign task = contest[page.codename] %}
44
{% if task.stage == "c" %}
55
{% assign stage_name = "Γ' Φάση" %}
6+
{% elsif task.stage == "b" %}
7+
{% assign stage_name = "B' Φάση" %}
68
{% elsif task.stage == "bgym" %}
79
{% assign stage_name = "B' Φάση Γυμνασίου" %}
810
{% elsif task.stage == "blyk" %}
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
---
2+
layout: statement
3+
codename: cauldron
4+
---
5+
6+
zzzzzzzzzzzzzzzzzzzzzzzzzΈστω
7+
Έστω μια ακολουθία αποτελούμενη από δυαδικά ψηφία (bits). Για τις
8+
ανάγκες αυτής της άσκησης, θα υπολογίζουμε την **υπογραφή** αυτής της
9+
ακολουθίας μετρώντας το πλήθος των διαδοχικών ψηφίων "1" (άσων) που
10+
εμφανίζονται σε αυτήν. Για παράδειγμα, έστω η ακολουθία:
11+
12+
$$\texttt{00{\color{red}111}0{\textcolor{red}{11}}000{\color{red}1111}0{\color{red}1}}$$
13+
14+
Στην ακολουθία αυτή εμφανίζονται πρώτα τρεις ($$3$$) διαδοχικοί άσοι, μετά
15+
άλλοι δύο ($$2$$), μετά άλλοι τέσσερις ($$4$$) και στο τέλος άλλος ένας ($$1$$). Η
16+
υπογραφή λοιπόν αυτής της ακολουθίας αποτελείται από τέσσερις
17+
αριθμούς: $$3$$, $$2$$, $$4$$, $$1$$. Δηλαδή, για να βρούμε την υπογραφή μιας
18+
ακολουθίας, προσπερνάμε τα μηδενικά (λειτουργούν μόνο ως διαχωριστές)
19+
και μετράμε το πλήθος των συνεχόμενων άσων που συναντάμε.
20+
21+
Προσέξτε ότι ακριβώς την ίδια υπογραφή έχει και η ακολουθία:
22+
23+
$$\texttt{\textcolor{red}{111}0000\textcolor{red}{11}0\textcolor{red}{1111}00000\textcolor{red}{1}0000}$$
24+
25+
Σας δίνεται μία ακολουθία αποτελούμενη από $$N$$ δυαδικά ψηφία, κάποια
26+
από τα οποία είναι όμως σβησμένα: στη θέση τους υπάρχει το σύμβολο της
27+
τελείας. Για παράδειγμα:
28+
29+
$$\texttt{00.\textcolor{red}{11}.\textcolor{red}{11}0....\textcolor{red}{1}..\textcolor{red}{1}}$$
30+
31+
Σας δίνεται επίσης μία επιθυμητή υπογραφή, π.χ. $$3$$, $$2$$, $$4$$, $$1$$.
32+
Με πόσους διαφορετικούς τρόπους μπορείτε να συμπληρώσετε τις τελείες
33+
με δυαδικά ψηφία, έτσι ώστε η ακολουθία δυαδικών ψηφίων που θα
34+
προκύψει να έχει τη δοθείσα υπογραφή;
35+
36+
## Πρόβλημα
37+
38+
Να αναπτύξετε ένα πρόγραμμα σε μια από τις γλώσσες Pascal, C, C++,
39+
Java το οποίο θα διαβάζει $$T$$ ερωτήματα της παραπάνω μορφής. Για κάθε
40+
ερώτημα θα δίνεται μια ακολουθία δυαδικών ψηφίων, από τα οποία κάποια
41+
θα είναι σβησμένα, και μια επιθυμητή υπογραφή. Για κάθε ερώτημα, το
42+
πρόγραμμά σας πρέπει να εκτυπώνει το πλήθος των τρόπων με τους
43+
οποίους μπορούν να συμπληρωθούν τα σβησμένα ψηφία, έτσι ώστε η
44+
ακολουθία που θα προκύψει να έχει την επιθυμητή υπογραφή.
45+
46+
## Αρχεία εισόδου:
47+
Το αρχείο εισόδου με όνομα **bitsign.in** είναι αρχείο κειμένου με την εξής
48+
δομή. Η πρώτη γραμμή περιέχει έναν ακέραιο αριθμό $$T$$, το πλήθος των
49+
ερωτημάτων που θα ακολουθήσουν. Ακολουθούν τα $$T$$ ερωτήματα, που το
50+
καθένα περιγράφεται από τρεις γραμμές της εισόδου. Η πρώτη από αυτές
51+
θα περιέχει δύο ακέραιους αριθμούς $$N$$ και $$M$$, χωρισμένους μεταξύ τους με
52+
ένα κενό διάστημα: το πλήθος των ψηφίων της ακολουθίας και το πλήθος
53+
των αριθμών της υπογραφής. Η δεύτερη θα περιέχει μία συμβολοσειρά
54+
αποτελούμενη από $$N$$ χαρακτήρες που καθένας μπορεί να είναι "0", "1" ή "."
55+
(τελεία). Η τρίτη θα περιέχει $$M$$ θετικούς ακέραιους αριθμούς, χωρισμένους
56+
ανά δύο με ένα κενό διάστημα: την επιθυμητή υπογραφή.
57+
58+
## Αρχεία εξόδου:
59+
Το αρχείο εξόδου με όνομα **bitsign.out** είναι αρχείο κειμένου με την εξής
60+
δομή. Θα πρέπει να περιέχει $$T$$ γραμμές: μία γραμμή για κάθε ερώτημα,
61+
κατά σειρά. Κάθε γραμμή θα πρέπει να περιέχει έναν ακέραιο, την
62+
απάντηση στο αντίστοιχο ερώτημα. Επειδή οι απαντήσεις μπορεί γενικά να
63+
είναι πολύ μεγάλοι αριθμοί, εκτυπώστε το υπόλοιπο (modulo) της διαίρεσής
64+
τους με τον αριθμό $$1.000.000.007$$.
65+
66+
## Παράδειγμα αρχείου εισόδου – εξόδου
67+
68+
| **bitsign.in** | **bitsign.out** |
69+
| :--- | :--- |
70+
| 5<br>7 3<br>...0111<br>1 1 3<br>14 3<br>0..00..000.110<br>1 1 3<br>15 4<br>.1.1.1.1.1.1.1.<br>1 3 1 6<br>13 3<br>.0..0.0001000<br>4 1 1<br>12 3<br>.111........<br>3 2 1 | 1<br>4<br>1<br>0<br>10 |
71+
72+
73+
*Εξήγηση:* Έχουμε $$T=5$$ ερωτήματα.
74+
- Στο πρώτο ερώτημα, μπορούμε να συμπληρώσουμε την ακολουθία μόνο με έναν τρόπο, έτσι ώστε να προκύψει η επιθυμητή υπογραφή (υπογραμμισμένα τα σβησμένα ψηφία που συμπληρώθηκαν): $$\texttt{\underline{\textcolor{red}{1}0\textcolor{red}{1}}0\textcolor{red}{111}}$$
75+
- Στο δεύτερο όμως ερώτημα, για την ίδια υπογραφή, μπορούμε να συμπληρώσουμε την ακολουθία με τέσσερις διαφορετικούς τρόπους: $$\texttt{0\underline{\textcolor{red}{1}0}00\underline{\textcolor{red}{1}0}000\underline{\textcolor{red}{1}}\textcolor{red}{11}0}$$, $$\texttt{0\underline{\textcolor{red}{1}0}00\underline{0\textcolor{red}{1}}000\underline{\textcolor{red}{1}}\textcolor{red}{11}0}$$, $$\texttt{0\underline{0\textcolor{red}{1}}00\underline{\textcolor{red}{1}0}000\underline{\textcolor{red}{1}}\textcolor{red}{11}0}$$ και $$\texttt{0\underline{0\textcolor{red}{1}}00\underline{0\textcolor{red}{1}}000\underline{\textcolor{red}{1}}\textcolor{red}{111}0}$$
76+
- Στο τρίτο ερώτημα, υπάρχει πάλι μόνο ένας τρόπος να συμπληρώσουμε την ακολουθία για να προκύψει η επιθυμητή υπογραφή: $$\texttt{\underline{0}\textcolor{red}{1}\underline{0}\textcolor{red}{1}\underline{\textcolor{red}{1}}\textcolor{red}{1}\underline{0}\textcolor{red}{1}\underline{0}\textcolor{red}{1}\underline{\textcolor{red}{1}}\textcolor{red}{1}\underline{\textcolor{red}{1}}\textcolor{red}{1}\underline{\textcolor{red}{1}}}$$
77+
- Στο τέταρτο ερώτημα, δεν υπάρχει κανένας τρόπος με τον οποίο να μπορεί να προκύψει η επιθυμητή υπογραφή, καθώς δεν μπορούν να προκύψουν τέσσερις συνεχόμενοι άσοι.
78+
- Στο τελευταίο ερώτημα, η σωστή απάντηση είναι $$10$$.
79+
80+
## Περιορισμοί:
81+
- $$1 \leq T \leq 10$$,
82+
- $$1 \leq N \leq 2.000$$ και $$1 \leq M \leq 1.000$$,
83+
- Το άθροισμα των μηκών των ακολουθιών όλων των ερωτημάτων δε θα υπερβαίνει το $$3.000$$.
84+
85+
## Subtasks
86+
- Για περιπτώσεις ελέγχου συνολικής αξίας 20%, θα είναι $$N \leq 15$$.
87+
- Για περιπτώσεις ελέγχου συνολικής αξίας 30%, το πλήθος των σβησμένων ψηφίων κάθε ακολουθίας δε θα υπερβαίνει το $$15$$.
88+
- Για περιπτώσεις ελέγχου συνολικής αξίας 50%, θα είναι $$N \leq 100$$.
89+
90+
**Προσοχή!** Φροντίστε να διαβάζετε την είσοδο και να εκτυπώνετε την έξοδο αποδοτικά, ειδικά αν προγραμματίζετε σε C++ ή Java.
91+
92+
**Μορφοποίηση:** Στην έξοδο, όλες οι γραμμές τερματίζουν με ένα χαρακτήρα newline.<br>
93+
**Μέγιστος χρόνος εκτέλεσης:** 1 sec.<br>
94+
**Μέγιστη διαθέσιμη μνήμη:** 256 MB.

0 commit comments

Comments
 (0)