728x90
π : λμΆ© λ€μ μλν΄μΌνλ€λ λ»
λΆλ₯
- μν
- μ μλ‘
- μμ νμ
- μλΌν μ€ν λ€μ€μ 체
λ¬Έμ
νμ΄
μ λ ₯μΌλ‘ λ°μ μμ μ λκ°μ μ λΆ μμΈμ λΆν΄νμ¬,
- * μ΄λ©΄, μμΈμ λΆν΄λλ μμΈμμ μ§μλ₯Ό +1
- / μ΄λ©΄, μμΈμ λΆν΄λλ μμΈμμ μ§μλ₯Ό -1
μ§μκ° μμμΈ μμΈμκ° νλλΌλ μ‘΄μ¬νλ©΄ μ 리μ
μ£Όμ)
0μ΄ κ³±ν΄μ§λ μκ° λ°λ‘ μ μ
λΆνΈλ μκ΄ μμ
μ½λ
//
// λ―ΌνΈ μ΄μ½
//
/*
* μ
λ ₯μΌλ‘ λ°μ μμ μ λκ°μ μ λΆ μμΈμ λΆν΄νμ¬,
* μ΄λ©΄, μμΈμ λΆν΄λλ μμΈμμ μ§μλ₯Ό +1
/ μ΄λ©΄, μμΈμ λΆν΄λλ μμΈμμ μ§μλ₯Ό -1
* μ§μκ° μμμΈ μμΈμκ° νλλΌλ μ‘΄μ¬νλ©΄ μ 리μ
*
*
*/
#include <iostream>
#include <vector>
using namespace std;
const int SIZE = 100000;//μ
λ ₯λ²μ -100000 ~ +100000 (μ λκ°μΌλ‘ ν κ±°λΌμ μμ)
vector<int> prime(SIZE + 1, 0);//μμΈμλΆν΄ν(?)
vector<int> exponent(SIZE + 1, 0); //κ° μμμ μ§μλ₯Ό μ μ₯
void isPrime() {
//μλ μ€ν ν
λ€μ€μ 체λ₯Ό μμ©ν΄ μμΈμ λΆν΄ ν λ§λ€κΈ°
//λͺ¨λ μκ° μμλΌκ³ κ°μ νκ³ , ν΄λΉ μΉΈμμ μκΈ°μμ μ μ μ₯
for (int i = 2; i <= SIZE; i++) {
prime[i] = i;
}
for (int i = 2; i * i < SIZE; i++) {
if (prime[i] == i) { // ν΄λΉ μ(i)μκ° μμμΌ κ²½μ°μ
for (int j = i * i; j <= SIZE; j += i) { //ν΄λΉ μ(i)μ λ°°μλ€μ iλ‘ μ½λΆκ°λ₯ -> iλμ
if (prime[j] == j) //λ³λλ‘ μ§μ λ μμκ° μμ κ²½μ°
prime[j] = i; // iλ jμ μμΈμμ€ μ΅μ -> μ μ΅μμΈμ§λ μμΈμ λΆν΄μμ
}
}
}
}
//μμΈμ λΆν΄ ν κ°±μ
void countExponent(int a, char c) {
int cnt;
if (c == '*') cnt = 1; // *λ©΄ ++
else cnt = -1;// / μ΄λ©΄ --
while (a > 1) {
exponent[prime[a]] += cnt; //μμΈμ λΆν΄νμ¬ exponentμΉΈ κ°±μ
a = a / prime[a]; //μ΅μ μμΈμλ‘ λλμ΄ λ€λ₯Έ μμΈμλ€μ κ°λ ꡬν΄μ£Όμ΄μΌν¨
}
}
//μ°μ°μ΄ λλ ν, μμΈμμ μ§μμ μμ μλμ§ νλ¨ -> μλ€λ©΄ μ 리μ -> true 리ν΄
bool isRationalNumber() {
for (int i = 2; i <= SIZE; i++) {
if (exponent[i] < 0) //μ 리μλΌλ©΄
return true;
}
return false;//μ μ
}
int main() {
int N;
cin >> N;
int num;
char op;
isPrime();
//맨 μ²μ μλ μ°μ°μκ° μμ΄μ '*'λ‘ λ£μ΄μ€
cin >> num;
if (num == 0) {
cout << "mint chocolate" << "\n";
return 0;
}
countExponent(num, '*');
N--;
while (N--) {
cin >> op >> num;
if (num == 0) {
cout << "mint chocolate" << "\n";
return 0;
}
// λΆνΈλ μκ΄μμ
countExponent(abs(num), op);
}
if (isRationalNumber())
cout << "toothpaste" << "\n";
else
cout << "mint chocolate" << "\n";
return 0;
}
728x90
'Algorithm > BaekJoon' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[2529] λΆλ±νΈ (0) | 2021.10.09 |
---|---|
[20055] μ»¨λ² μ΄μ΄ λ²¨νΈ μμ λ‘λ΄ (0) | 2021.09.28 |
[2841] μΈκ³μΈμ κΈ°ν μ°μ£Ό (0) | 2021.09.27 |
[2493] ν (0) | 2021.09.24 |
[11723] μ§ν© (0) | 2021.09.23 |