VioletaBabel

등차 수열 (시간초과) 본문

알고리즘문제들/codeground
등차 수열 (시간초과)
Beabletoet 2017. 6. 28. 21:59

#include <iostream>

using namespace std;

int Answer;

int main(int argc, char** argv)

{

int T, test_case, m, max;

bool zero, check, countz;

long long num[100000], a, b;

cin >> T;

for (test_case = 0; test_case < T; test_case++)

{

Answer = 0, zero = 0, max = 0, countz = 0;

cin >> m >> a;

for (int i = 1; i < m; ++i)

{

cin >> b;

num[i - 1] = b - a;

a = b;

if (max < num[i - 1])

max = num[i - 1];

if (num[i - 1] != 0)

++zero;

else

++countz;

}

if (zero == 1)

for (int i = 1; i <= max; ++i)

{

check = 0;

for (int j = 0; j < m - 1; ++j)

if (num[j] % i != 0)

{

++check;

break;

}

if (check == 0)

++Answer;

}

else if (countz == 0)

Answer = 1;

else

Answer = 0;

cout << "Case #" << test_case + 1 << endl;

cout << Answer << endl;

}

return 0;

}

============

이 방법 말고 최대공약수를 이용하는 방법으로 다시 해봐야할 듯.

'알고리즘문제들 > codeground' 카테고리의 다른 글

김씨만 행복한 세상  (0) 2017.06.28
스타벅스  (0) 2017.06.28
태준이의 걱정  (0) 2017.06.28
개구리 뛰기  (0) 2017.06.17
체스판 위의 길 (실패)  (0) 2017.06.17
Comments