Challenge 15 - The internsheep
Here, at Better Farm Systems™, we're cloning our livestock in hopes to maintain our supply while also reducing the environmental impact.
In order to obtain the best, and only the best animals, we use advanced DNA editing techniques like CRISPR.
Since the DNA sequence is quite large, we use its crc32 hash in our logs and reports,
and I'm the scientist responsible for calculating it.
However, I'm tired of calculating the crc32 by hand, I'm fed up and I'm quitting right now.
As the intern, this task is now yours. By the way, you can use the calculator on my desk,
I already submitted the easier ones :)
You have the clear DNA files in this archive.
Input
You get a sequence of modifications:
Each modification starts with a line that has the name of an animal file and the number of additions.
Each addition is on its own line with the form
Position Byte
Position is where the byte is going to be inserted, it can range from 0 (at the beginning of the file), to the size of the file (at the end of the file). Bear in mind that the file size increases with the additions.
Each animal file appears at most once in the input.
Output
For each addition, the output is the string "File AdditionNumber: CRC32", where File is the name
of the file where all the additions are being performed, AdditionNumber is the index of the Addition
starting at 1 and the CRC32 is the crc32 of the whole file with the additions up to that time.
You must also include the CRC32 of the file without additions too (with AdditionNumber as 0).
Do not pad AdditionNumber, The CRC32 hash is a lowercase 8-char hex string.
Limits
1 <= Additions <= 4 for test 1 <= Additions <= 64 for submit 0 <= Position <= File size up to that addition 0 <= Byte <= 255
Sample input
aardwolf0000 2 0 224 0 192 admiral0000 4 1 227 2 232 2 46 0 169
Explanation of the input:
aardwolf0000 is an empty file, so its crc32 is 00000000
Then you add the byte 224 (xE0) at the beginning of the file and the crc of the new file (xE0) is 72080df5
Then you add the byte 192 (xC0) at the beginning of the file and the crc of the file (xC0E0) turns out to be 2a2927c9
Sample output
aardwolf0000 0: 00000000 aardwolf0000 1: 72080df5 aardwolf0000 2: 2a2927c9 admiral0000 0: d202ef8d admiral0000 1: 78daa13d admiral0000 2: 24c31377 admiral0000 3: 2f36d283 admiral0000 4: b5670765
Problem stats
Completion time: |
min: 2:37:47 h 10th percentile: 5:44:47 h 90th percentile: 30:12:05 h max: 83:40:57 h |
---|---|
Test phase time: |
10th percentile: 3:10:04 h 90th percentile: 24:55:55 h |
Submit phase time: |
10th percentile: 0:07:27 h 90th percentile: 17:20:38 h |
# of completions: | 59 |