PROG0120 - Reading a pitch

no tags 

Ordinarily, advertisers strive to make their messages as clear as possible. In fact, most are designed to get through to the village idiot. In 1972, publisher Addison-Welsey placed an advertisement with a different twist. On the back of the magazine The American Statistician, they led off an ad for three textbooks with the following cryptic remark.

reclame
Fragment of an Addison-Welsey advertisement that appeared at the back of The American Statistician, year 1972, volume 25, number 5. Thanks to Marianne Borderé (Ghent University, library of the faculty of Bioscience Engineering) for digging up this slogan from the archives.

David Silverman wrote in an article for the magazine Word Ways:

Care to try and figure out the hidden message? Although the slogan doesn't have the pizzazz of — say — "Let ESSO put a tiger in your tank", it can equally well be applied to the sale of shoes, ships or sealing wax (or, for that matter, floor wax).

Input

There are three lines of input. The first line contains a text fragment that hides a secret message. The message can be deciphered in the same way as the pitch line from the Addison-Welsey advertisement mentioned in the introduction. This is followed by another two lines that each contain an integer: a starting position $p$ in the slogan and a step size $s$, where $s \neq 0$.

Output

A line containing the secret message. The message can be deciphered by stepping through the pitch line starting from position $p$, and skipping $s$ characters forward (if $s > 0$) or backward (if $s < 0$) at a time through the string. Positions of the characters are indexed according to the Python indexing rules for strings (including negative indices). Cycle back to the beginning if you hit the end of the pitch line when skipping forward. Cycle back to the end if you hit the beginning of the pitch line when skipping backward.

Below we show an example of how to decipher the hidden slogan from the cryptic remark in the Addison-Welsey advertisement mentioned in the introduction. We start at position -3 (or position 20 if we index left to right) and keep on skipping three positions backward through the characters of the string, cycling back to the end as often as necessary. The starting position and the first step of the deciphering process are marked in yellow.

slogan
The secret message in the Addison-Wesley advertisement can be deciphered as "say hello to a good buy". Start at position -3 (or position 20 if counting from the left) and keep on skipping three positions backward through the characters of the string, cycling back to the end as often as necessary. The starting position and the  first step of the deciphering process are marked in yellow.

Example

Input:

y luaeb h o dtyo aoosgl
-3
-3

Output:

say hello to a good buy

Example

Input:

say hello to a good buy
22
15

Output:

y luaeb h o dtyo aoosgl

Resources

  • Addison-Wesley advertisement (1972). The American Statistician 26(5), back matter.
  • Silverman DL (2009). Some Cryptographic Challenges. Word Ways 41(2), article 5.

Normaalgezien streven adverteerders ernaar om hun boodschap zo klaar en duidelijk mogelijk over te brengen. We stellen in feite zelfs vast dat de meeste van die boodschappen vermoedelijk ontworpen zijn om door te kunnen dringen tot de lokale dorpsidioot.

In 1972 liet de uitgeverij Addison-Welsey echter een advertentie plaatsen vanuit een tegenovergestelde invalshoek. Op de achterkant van het tijdschrift The American Statistician publiceerden ze reclame voor drie boeken, die begon met de volgende cryptische boodschap.

reclame
Fragment van een reclameslogan van Addison-Wesley op de achterflap van The American Statistician, jaargang 1972, volume 25, nummer 5. Met dank aan Marianne Borderé (faculteitsbibliotheek bio-ingenieurswetenschappen, UGent) voor het opduiken van de slogen uit de archieven.

In het magazine Word Ways schreef David Silverman hierover:

Slaag je erin om de geheime boodschap te ontcijferen? Hoewel de slogan niet hetzelfde cachet heeft als — zeg maar — "stop een tijger in uw tank" (ESSO), heeft hij wel het voordeel dat hij universeel toepasbaar is. Hij kan net zo goed toegepast worden voor het verkopen van schoenen, boten of boenwas.

Invoer

De invoer bestaat uit drie regels. De eerste regel bevat een tekstfragment waarin een geheime boodschap verborgen zit, die je op dezelfde manier kan ontcijferen als de slogan uit de inleiding. Daarna volgen twee regel die elk een geheel getal bevatten: een startpositie $p$ in de slogan en een stapgrootte $s$, waarbij $s \neq 0$.

Uitvoer

Een regel met daarop de ontcijferde boodschap. De boodschap kan je ontcijferen door te vertrekken van de aangegeven startpositie $p$ in de gegeven slogan, en telkens $s$ karakters vooruit (als $s > 0$) of achteruit (als $s < 0$) te springen totdat je alle karakters van de slogan hebt doorlopen. Hierbij worden de posities van de karakters geïndexeerd volgens de Python indexeringsregels voor strings (inclusief het gebruik van negatieve indices). Indien je bij het vooruitspringen tegen de rechterkant van de slogan loopt, dan tel je gewoon verder vanaf de linkerkant van de slogan. Indien je bij het achteruitspringen tegen de linkerkant van de slogan loopt, dan tel je gewoon verder vanaf de rechterkant van de slogan.

Hieronder zie je bijvoorbeeld hoe de slogan kan ontcijfers worden die verborgen zit de cryptische boodschap die je kent uit de inleiding van deze opgave. We starten op positie -3 (of positie 20 als we indexeren van links naar rechts) en springen telkens drie posities achteruit naar het volgende karakter. Hierbij tellen we verder vanaf rechts als we tegen de rechterkant van de cryptische boodschap aanlopen. De startpositie en de eerste stap van de ontcijfering hebben we in het geel aangeduid.

slogan
De reclameslogan van Addison-Wesley kan ontcijferd worden als "say hello to a good buy". Start op positie -3 (of positie 20 als je telt vanaf links) en spring telkens 3 posities achteruit naar het volgende karakter. Tel verder vanaf rechts als je tegen de rechterkant van de cryptische boodschap aanloopt. De startpositie en de eerste stap van de ontcijfering hebben we in het geel aangeduid.

Voorbeeld

Invoer:

y luaeb h o dtyo aoosgl
-3
-3

Uitvoer:

say hello to a good buy

Voorbeeld

Invoer:

say hello to a good buy
22
15

Uitvoer:

y luaeb h o dtyo aoosgl

Bronnen

  • Addison-Wesley advertisement (1972). The American Statistician 26(5), achterflap.
  • Silverman DL (2009). Some Cryptographic Challenges. Word Ways 41(2), artikel 5.


Added by:Peter Dawyndt
Date:2011-08-06
Time limit:10s-30s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:PY_NBC
Resource:None