IQ Testμ λ¬Έμ μ€μλ 곡ν΅λ ν¨ν΄μ μ°Ύλ λ¬Έμ κ° μλ€. μμ΄μ΄ μ£Όμ΄μ‘μ λ, λ€μ μλ₯Ό μ°Ύλ λ¬Έμ μ΄λ€.
μλ₯Ό λ€μ΄, 1, 2, 3, 4, 5κ° μ£Όμ΄μ‘λ€. λ€μ μλ 무μμΈκ°? λΉμ°ν λ΅μ 6μ΄λ€. μ½κ° λ μ΄λ €μ΄ λ¬Έμ λ₯Ό 보면, 3, 6, 12, 24, 48μ΄ μ£Όμ΄μ‘μ λ, λ€μ μλ 무μμΈκ°? μμ λ΅μ 96μ΄λ€.
μ΄μ μ μΌ μ΄λ €μ΄ λ¬Έμ λ₯Ό 보μ.
1, 4, 13, 40μ΄ μ£Όμ΄μ‘μ λ, λ€μ μλ 무μμΌκΉ? λ΅μ 121μ΄λ€. κ·Έ μ΄μ λ νμ λ€μ μλ μ μ*3+1μ΄κΈ° λλ¬Έμ΄λ€.
μμ§μ΄λ μμ 3λ¬Έμ λ₯Ό λͺ¨λ νμ§ λͺ»νμΌλ―λ‘, μλμΌλ‘ νμ΄μ£Όλ νλ‘κ·Έλ¨μ μμ±νκΈ°λ‘ νλ€. νμ λͺ¨λ λ΅μ ꡬνλ κ·μΉμ μ μ*a + bμ΄λ€. κ·Έλ¦¬κ³ , aμ bλ μ μμ΄λ€.
μ Nκ°κ° μ£Όμ΄μ‘μ λ, κ·μΉμ λ§λ λ€μ μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
/* 1. λ μ«μλ₯Ό λλλ€. λλ μ λμ¨ λͺ« μ΄νλ‘ aλ₯Ό κΈ°μ€μΌλ‘ λ€ λλ €λ³΄κΈ°.
1-1. N2λ₯Ό N1λ‘ λλλ€. => κ° : p.rr...
1-2. κ° pλ₯Ό aλ‘ μΈμ΄λ€.
1-2-1. N1μ aλ₯Ό κ³±ν΄ N2μ μ°¨λ₯Ό 벑ν°μ μ μ₯νλ€.
1-3. a = a-1; ν΄μ, -pκΉμ§ νλ€. <pκ° λ§μ΄λμ€μΌ λλ₯Ό κ³ λ €νμ§ μμ. μΆκ°λ‘ rλ λ§μ΄λμ€κ° λ μ μλ€...>
2. λ€μ λ μ«μλ‘ λμ΄κ°λ€.
2-1. 벑ν°μμ μ«μλ₯Ό κΊΌλ΄μ κ·Έ μμ΄ μ±λ¦½νλμ§ νμΈνλ€. μλλ©΄ μ»·. λ§μ§λ§κΉμ§ λ°λ³΅.
3. 벑ν°μ λ¨μκ°μ νμΈνλ€. λ§μ½μ νλλ§ λ¨μμμΌλ©΄, λ€μ μ κ³μ° γ±γ΄ μΆλ ₯.
λ§μ½, μ¬λ¬κ°κ° λ¨μμμΌλ©΄ Aλ₯Ό μΆλ ₯.
νλλ μλ€λ©΄, Bλ₯Ό μΆλ ₯.
*/
#include <iostream>
using namespace std;
int N;
int list[50];
int main() {
/** INPUT **/
cin >> N;
for (int i = 0; i < N; i++) {
cin >> list[i];
}
/** SOLUTION **/
int a, b;
if (N <= 2) {
if (N == 1) {
// κ°μ΄ μ¬λ¬κ°μ. A
cout << 'A';
}
else {
if (list[0] == list[1]) {
// aκ° 1μ΄κ³ , bκ° 0μΈ κ².
cout << list[0];
}
else {
// κ°μ΄ μ¬λ¬κ°μ. A.
cout << 'A';
}
}
return 0;
}
else {
int inter1 = list[1] - list[0];
int inter2 = list[2] - list[1];
if (inter1 == 0) {
a = 0;
}
else {
if (inter2 % inter1 != 0) {
cout << 'B';
return 0;
}
a = inter2 / inter1;
}
b = list[1] - a*list[0];
}
for (int idx = 1; idx < N; idx++) {
if (list[idx] != list[idx-1]*a + b) {
cout << 'B';
return 0;
}
}
cout << list[N-1]*a + b;
return 0;
}