VioletaBabel
등차 수열 (시간초과) 본문
#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 |