QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#21240. Musik macht Kühe krank

Statistics

Kühe lieben jede Musik, fast jede: Der große Kuhkomponist Wolfgang Amadeus Moozart entdeckte einen Akkord, der Kühe ziemlich krank macht. Dieser Wiederkäuerseptakkord wird deshalb in Kuhkompositionen gewöhnlich vermieden.

Farmer John kennt die Feinheiten der Kuhmusikgeschichte nicht und spielt sein Lieblingslied über die Stalllautsprecher. Finde alle solchen Akkorde, um abzuschätzen, wie krank die Kühe werden.

Das Lied besteht aus $N$ Noten, $1 \le N \le 20,000$, jede ganzzahlig in $1..88$. Ein Akkord hat $C$ verschiedene Noten, $1 \le C \le 10$, ebenfalls in $1..88$. Transponieren (alle um denselben Betrag erhöhen oder senken) oder Umordnen erhält den Akkord! Passt $4,6,7$, passen auch $3,5,6$ (um $-1$), $6,8,9$ (um $+2$), $6,4,7$ (umgeordnet), $5,3,6$ (beides).

Ein Akkord sind $C$ aufeinanderfolgende passende Noten. Er ist durch den Anfang eindeutig bestimmt. Finde alle Anfangsindizes.

Eingabe

  • Zeile $1$: ganze Zahl $N$.

  • Zeilen $2..1+N$: die $N$ Noten, eine pro Zeile.

  • Zeile $2+N$: ganze Zahl $C$.

  • Zeilen $3+N..2+N+C$: $C$ Noten eines Beispielakkords. Alle Transpositionen und/oder Umordnungen passen ebenfalls.

Ausgabe

  • Zeile $1$: Anzahl $K$ der Akkorde im Lied. Vorkommen dürfen sich überlappen.

  • Zeilen $2..1+K$: je ein Anfangsindex ($1$ ist die erste Note, $N$ die letzte), aufsteigend sortiert.

Beispiele

Eingabe 1

6
1
8
5
7
9
10
3
4
6
7

Ausgabe 1

2
2
4

Hinweis

Das Lied ist $1,8,5,7,9,10$. Ein Akkord ist eine Transposition oder Umordnung von $4,6,7$.

Zwei Akkorde überlappen sich um eine Note: $8,5,7$ (um $+1$ transponiert und umgeordnet) beginnt bei $2$; $7,9,10$ (um $+3$) bei $4$.

Aufgabenautor: Rob Seay

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.