Twoim zadaniem jest stworzenie programu, w którym jeśli jeden znak zostanie usunięty, wykryje, który znak został usunięty, a następnie ponownie wstawi usunięty znak do własnego pliku źródłowego.
Na przykład, jeśli twój program jest RadiationHardened
i jest zmodyfikowany RadiaionHardened
, to twój program musi wyprowadzić, że zmodyfikowany został 5. bajt (indeksowany 0), a następnie źródło programu musi być RadiationHardened
natychmiast po wykonaniu.
Uwagi i zasady
- Możesz założyć, że dokładnie jeden znak został usunięty z kodu źródłowego przed wykonaniem. Zachowanie niezmodyfikowanego programu jest niezdefiniowane.
- Możesz założyć, że zmieniony bajt zostanie usunięty, nie transponowany, wstawiony ani zastąpiony.
- W przypadku serii wielokrotności tego samego znaku możesz zgłosić pierwszy lub ostatni indeks serii, ale zachowaj spójność co do tego, którego używasz. Na przykład
baaad
usunięcie, abybaad
zgłosić 1 lub 3 (indeksowane zerem), ale musi być takie samo w całym programie. - Nie musisz zapisywać całego źródła do własnego pliku. Wystarczy ponownie wstawić usunięty bajt.
- W przeciwieństwie do typowych zasad dla utwardzanych promieniowaniem quinów, wykrywanie zmienionego bajtu po odczytaniu własnego kodu źródłowego programu jest uczciwą grą.
- Zmieniony indeks bajtów można wydrukować w dowolnym rozsądnym formacie. Bądź konsekwentny w kwestii, czy jest indeksowany 0, indeksowany 1 czy jakikolwiek inny zapis. Możesz nawet wypisać liczbę w ciągu szablonu.
To jest golf golfowy, więc wygrywa najkrótszy program.
Powodzenia!
EDYCJA 1: zmieniono wymaganie z zamiany na usunięcie
EDYCJA 2: dodano regułę dla serii duplikatów
code-challenge
którym każdy program może zadeklarować listę bajtów, które są chronione przed promieniowaniem (ale nie więcej niż - powiedzmy - 50% całkowitego rozmiaru). Prostym systemem oceniania może być policzenie każdego bajtu chronionego przed promieniowaniem jako 10 bajtów lub coś w tym rodzaju.
*
polecenie zabija wszystkie adresy IP. Kardynał też nie może tego zrobić@
.