IOI '98 - Setúbal, Portugal
Contact
Dr. Astro Insky works at a radiotelescope centre. Recently, she noticed a very curious microwave pulsing emission sent right from the centre of the galaxy. Is the emission transmitted by some extraterrestrial form of intelligent life? Or is it nothing but the usual heartbeat of the stars?
You must help Dr. Insky to find out the truth by providing a tool to analyse bit patterns in the files she records. Dr. Insky wants to find the patterns of length between (and including) A and B (0 < A ≤ B ≤ 12) that repeat themselves most often in the data file of each day. In each case, the greatest N (0 < N ≤ 20) distinct frequencies (that is, number of occurrences) are sought. Pattern occurrences may overlap, and only patterns that occur at least once are taken into account.
Input Format
First line - The integer A indicating the minimum pattern length.
Second line - The integer B indicating the maximum pattern length.
Third line - The integer N indicating the number of distinct frequencies.
Fourth line - A sequence of 0
and 1
characters, terminated by a 2
character.
Note: The input may be as large as 2 megabytes.
Output Format
The output must be a report with at most N lines, listing the at most N greatest frequencies and corresponding patterns. The listing must be produced in decreasing order of pattern frequency, and consists of lines formatted like:
frequency pattern pattern … patternwhere frequency is the number of occurrences of the patterns that follow. The patterns in each line must appear in decreasing order of length. Patterns of equal length must be listed in reverse numerical order. In case there are less than N distinct frequencies, the output listing will have less than N lines.
Sample Input
2 4 10 010100100100010001111011000010100110011110000100100111100100000002
Sample Output
23 00 15 10 01 12 100 11 001 000 11 10 010 8 0100 7 1001 0010 6 0000 111 5 1000 110 011 4 1100 0011 0001
Explanation
This asks for the top ten frequencies of patterns of length between two and four that occur in the bit pattern:
01010010010001000111101100001010011001111000010010011110010000000
Note that the fourth line of the input above appears split in order to fit herein. In this example, pattern 100
occurs 12 times, and pattern 1000
occurs 5 times. The most frequent pattern is 00
.
All Submissions
Best Solutions
Point Value: 15 (partial)
Time Limit: 2.00s
Memory Limit: 32M
Added: Dec 21, 2013
Languages Allowed:
C++03, PAS, C, HASK, ASM, RUBY, PYTH2, JAVA, PHP, SCM, CAML, PERL, C#, C++11, PYTH3
Comments (Search)
It's quiet in here...