Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

AL_19_09 - Kolonizacja galaktyki

Najnowsze badania naukowe w Bajtocji zaowocowały wynalezieniem napędu nadświetlnego. Dzięki temu możliwe stały się podróże międzygwiezdne, a kolonizacja całej galaktyki, to tylko kwestia czasu. Aby mieć pełną kontrolę nad procesem kolonizacji, powołano do życia Instytut Międzyplanetarnych Analiz Populacji.

Przed znanym bajtockim informatykiem Bajtłomiejem (tym samym, który pracował kiedyś dla BIOS-u i IBM-u), postawiono nowe zadanie. Ma opracować system informatyczny dla IMAP-u. W związku z tym przyjęto szereg założeń.

Galaktykę podzielono na sektory, a każdy z nich otrzymał trzyelementowy kod odpowiadający jego położeniu. Kod (bazujący na współrzędnych sferycznych) ma format RDS, gdzie:
R to znak ze zbioru {'A'..'Z','a'..'z'} określający odległość sektora od środka układu współrzędnych. Literą 'A' oznaczone są sektory położone najbliżej. Dalej 'B','C',..,'Z','a','b',..,'z'. 
D odpowiada długości galaktycznej i jest trzycyfrową liczbą całkowitą z zakresu [001;360].
S wynika z szerokości galaktycznej i jest to (poprzedzona znakiem '+' lub '') dwycyfrowa liczba całkowita o wartości bezwględnej z zakresu [01;90].

Do IMAP-u docierać będą dane na temat zmian demograficznych w poszczególnych sektorach, więc projektowany system ma realizować trzy typy poleceń aktualizujących:
1. Zwiększenie liczby kolonistów w danym sektorze o pewną wartość. Polecenie będzie miało format: RDS W, gdzie RDS to kod sektora, a W to wartość, o jaką zwiększyła się liczba kolonistów w tym sektorze.
2. Zmniejszenie liczby kolonistów w danym sektorze o pewną wartość. Polecenie będzie miało taki sam format jak poprzednie.
3. Przesiedlenie określonej liczby kolonistów z pewnego sektora A do innego sektora B. Format: RADASRBDBSW, gdzie RADASA to kod pierwszego sektora, RBDBSB to kod drugiego sektora, a W to liczba przesiedlonych kolonistów.

System ma też wykonywać polecenie czwartego typu. Realizacja tego polecenia ma polegać na obliczeniu aktualnej liczby kolonistów w pewnym multisektorze. Multisektorem o kodzie RADASA RBDBSB (gdzie RA ≤ RB i DA ≤ DB i SA ≤ SB) będziemy nazywać zbiór sektorów RDS, takich że: RA ≤ R ≤ RB i DA ≤ D ≤ DB i SA ≤ S ≤ SB. Format tego polecenia jest taki sam jak kod multisektora, którego dotyczy.

Wejście

Nieokreślona liczba linii (nie większa niż 105) zawierających polecenia kierowane do systemu.
Na początku każdej linii liczba z zakresu 1..4 oznaczająca typ polecenia. Po niej parametry polecenia w formacie odpowiadającym jego typowi. 
Liczba kolonistów W, podawana w poleceniach typów 1, 2 i 3 spełnia warunki: 1 ≤ W ≤ 109.
Zagwarantowane jest, że w wyniku wykonania polecenia typu 2 lub 3, liczba kolonistów w żadnym sektorze nie osiągnie wartości ujemnej.

Wyjście

Dla każdego polecenia typu 4, w osobnej linii, wynik jego realizacji - jedna liczba całkowita oznaczająca aktualną liczbę kolonistów w danym multisektorze. 

Przykład

Wejście:
1 A005+90 1000
1 C003-40 2000
4 A001-90 D010+90
2 C003-40 500
4 B002-55 c003+90
3 A005+90 x359+89 999
4 B001-90 z360+90

Wyjście:
3000
1500
2499

Dodane przez:Witold Długosz
Data dodania:2014-11-27
Limit czasu wykonania programu:1s-2s
Limit długości kodu źródłowego50000B
Limit pamięci:1536MB
Cluster: Cube (Intel G860)
Języki programowania:All except: ASM64 GOSU
Pochodzenie: ALGOLIGA 19
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.