코드포스(CodeForce)

Educational Codeforces Round 33 (Rated for Div. 2) - A. Chess For Three

cepiloth 2018. 8. 17. 18:18
반응형


1. 문제


2. 알고리즘

키워드 - 구현


* 문제 접근


알랙스, 밥, 칼이 체스 게임을 할때 체스 게임에 특성상 2명만 게임을 할 수 있고 1명은 관중을 해야 한다.

알랙스, 밥 이 게임중이면 칼은 관중 상태가 된다.

알랙스 = 1, 밥 = 2, 칼 = 3 으로 치환하고


첫 번째 게임이 진행 될때


알랙스 + 밥 = 3 이고 

알랙스 가 이겼을 경우 

알랙스 + 칼 = 4 이다. 

알랙스가 진 경우

칼 + 밥 = 5 이다.



알렉스 + 밥 + 칼 = 6 이고

게임을 진행하는 인원에 합을 빼면은 관중하는 사람을 찾을 수 있다.



[총합] - [게임 진행하는 사람에 총합] = [관중자]


6 - (알랙스 1 + 밥 2) = 3 -> 3은 칼

6 - (알랙스 1 + 칼 3) = 2 -> 2는 밥

6 - (칼 3 + 밥 2) = 1 1-> 1은 칼


3. 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <vector>
using namespace std;
 
int main()
{
    int n;  cin >> n;
 
    vector<int> arr(n);
    for (int i = 0; i<n; i++)
        cin >> arr[i];
 
    int obserber = 3;
    bool error = false;
    for (int i = 0; i < n; i++) {
 
        if (arr[i] == obserber) {
            error = true;
            break;
        }
 
        obserber = - (arr[i] + obserber);
 
    }
 
    if (error)
        cout << "NO" << endl;
    else
        cout << "YES" << endl;
 
    return 0;
}
cs



반응형