안녕하세요. 오늘은 이상한 섞기 연산을 할 거예요.

문제

https://www.acmicpc.net/problem/31215

아이디어

1-교환과 2-교환은 아무일도 일어나지 않습니다.
3-교환을 할 시에는 1과 3이 바뀌게 됩니다.
그런데 3은 2의 거듭제곱수가 아니므로 1이 끝까지 그대로 보존되게 됩니다.
그러므로 N이 2이하이면 1, 아니면 3을 출력해주면 됩니다.

소스코드

#include <iostream>
#define ll long long
using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll T, N;
    cin >> T;
    while (cin >> N)
    {
        if (N <= 2) cout << "1\n";
        else cout << "3\n";
    }
}


감사합니다.

0개의 댓글