Dihedral qrupda vurma
Дiederal qrup, D çoxluğunu və D üzərində müəyyən edilmiş * əməliyyatını təmsil edir. Bu çoxluq a və b elementləri ilə yaradılır. Çarpma əməliyyatı * açıq şəkildə yazılmayacaq, yəni a*a aa və ya a^2 kimi göstəriləcək. Eyni şəkildə, a*a*b a^2b^1 və ya sadəcə a^2b kimi yazılacaq.
Diederal qrup D iki tam ədədi parametrə malikdir: m və n, burada m ≥ 2 və n ≥ 2. Beləliklə, diederal qrupu D_{m,n} kimi ifadə edilə bilər. D_{m,n} qrupunu müəyyən edən əlaqələr bunlardır:
a^m = a^0 = 1, b^n = b^0 = 1 və ba = a^{(m-1)}b.
D_{m,n} qrupu (mn) elementdən ibarətdir, yəni
D_{m,n} = { a^jb^k | 0 ≤ j < m, 0 ≤ k < n } = { a^0b^0, a^1b^0, a^2b^0, ..., a^{(m-1)}b^0, ..., a^{(m-1)}b^{(n-1)} }.
Məsələn, m = 7 və n = 2 olduqda, D_{7,2} elementləri belədir:
{ a^0b^0, a^1b^0, a^2b^0, a^3b^0, a^4b^0, a^5b^0, a^6b^0, a^0b^1, a^1b^1, a^2b^1, a^3b^1, a^4b^1, a^5b^1, a^6b^1 }.
Çarpma əməliyyatı kommutativ deyil, yəni ba ≠ ab. Əslində, ba = a^6b D_{7,2} qrupunu müəyyən edən əlaqələrə görədir. Həmçinin, a^ja^k = a^{(j+k)%m} və b^jb^k = b^{(j+k)%n}. Beləliklə,
(a^jb^k)(a^pb^q) ≠ (a^{(j+p)%m}b^{(k+q)%n}).
D_{7,2} qrupundan iki element (a^3b^1) və (a^2b^1) çarpmaq üçün aşağıdakı kimi davam edirik:
(a^3b^1)(a^2b^1) = (a^3b^0)(ba)(a^1b^1) = (a^3b^0)(a^6b^1)(a^1b^1),
çünki ba = a^6b.
a^3b^0a^6 = a^3a^6 = a^{(3+6)%7} = a^2 olduğuna görə, ilk iki çarpanı çarparaq (a^3b^0)(a^6b^1) = (a^2b^1) əldə edirik.
Beləliklə,
(a^3b^0)(a^6b^1)(a^1b^1) = (a^2b^1)(a^1b^1).
İfadəni yenidən yazaraq,
(a^2b^1)(a^1b^1) = (a^2b^0)(ba)(a^0b^1) = (a^2b^0)(a^6b^1)(a^0b^1) = (a^8b^2) = (a^1b^0).
Beləliklə, (a^3b^1) və (a^2b^1) elementlərinin çarpımı (a^3b^1)(a^2b^1) = (a^1b^0) olur.
Sizdən m, n və D_{m,n} diederal qrupundan verilmiş iki element (a^jb^k) və (a^pb^q) üçün düzgün çarpımı hesablayan bir proqram yazmağınız tələb olunur.
Giriş verilənləri
Giriş bir neçə testdən ibarətdir. Hər test bir neçə sətirdən ibarətdir. Hər testin ilk sətri boşluqla ayrılmış problemID, m, n və p dəyərlərini ehtiva edir. m və n 1000-dən böyük deyil. p cari testdəki çarpma nümunələrinin sayını göstərir. Sonra p sətir gəlir, hər biri D_{m,n}-dən çarpılması lazım olan iki elementi ehtiva edir. Hər element a3b1 şəklində veriləcək, a^3b^1 əvəzinə. Növbəti testin məlumatları əvvəlki testin dərhal ardınca gəlir. Əgər problemID "ZZ"-yə bərabərdirsə, bu, giriş məlumatlarının sonunu göstərir.
Çıxış verilənləri
Hər çarpma nümunəsi üçün aşağıdakı formada bir sətir çıxarın:
ProblemID id: ajbk * apbq = arbs
burada id girişdə verilmiş problemID nömrəsidir, ajbk və apbq çarpılması lazım olan elementlərdir, arbs isə düzgün cavabdır.