수학과의 좌충우돌 프로그래밍

[C++] BAEKJOON 17968 Fire on Field (acm-icpc) 본문

알고리즘/C++

[C++] BAEKJOON 17968 Fire on Field (acm-icpc)

ssung.k 2019. 11. 13. 20:29

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

 

17968번: Fire on Field

We define A as a sequence of positive integers like the following. Let A[0] = 1, A[1] = 1. For a positive integer i ≥ 2, A[i] is the smallest positive integer under the condition that no three terms A[i − 2k], A[i − k], and A[i] form an arithmetic progress

www.acmicpc.net

2019 acm icpc Seoul A번 입니다. 해당 대회의 문제 중에 제일 쉬운 문제로 단순 구현 문제입니다.

#include <iostream>

using namespace std;

int A[1001] = {1,1};

int main(int argc, const char * argv[]) {
    
    for (int i=2;i<1001;i++){
        int value = 1;
        while (1){
            A[i] = value;
            int k=1;
            while (1){
                if (i-2*k<0) break;
                if (A[i] - A[i-k] == A[i-k] - A[i-2*k])
                    break;
                k++;
            }
            if (i-2*k<0)
                break;
            else
                value++;
        }
    }
    
    int n;
    
    cin >> n;
    cout << A[n] << "\n";
}

 

'알고리즘 > C++' 카테고리의 다른 글

[C++] stl container set, multiset  (0) 2020.04.14
[C++] string 문자열 나누는 split  (3) 2020.03.15
[C++] BAEKJOON 11404 플로이드  (0) 2019.11.10
[C++] BAEKJOON 11559 Puyo Puyo  (0) 2019.11.04
[C++] BAEKJOON 2573 빙산  (0) 2019.11.03
Comments