CSES - KILO 2018 1/5 - Results
Submission details
Task:Perfect Plants
Sender:Olli
Submission time:2018-09-06 18:22:22 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.02 sdetails
#2ACCEPTED0.03 sdetails
#3ACCEPTED0.02 sdetails
#4ACCEPTED0.01 sdetails
#5ACCEPTED0.06 sdetails
#6ACCEPTED0.06 sdetails
#7ACCEPTED0.06 sdetails
#8ACCEPTED0.06 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.05 sdetails
#11ACCEPTED0.06 sdetails
#12ACCEPTED0.05 sdetails
#13ACCEPTED0.06 sdetails
#14ACCEPTED0.05 sdetails
#15ACCEPTED0.06 sdetails
#16ACCEPTED0.06 sdetails
#17ACCEPTED0.05 sdetails
#18ACCEPTED0.06 sdetails
#19ACCEPTED0.06 sdetails
#20ACCEPTED0.06 sdetails

Code

#include <iostream>

using namespace std;

const int N = 1e5 + 5;

int t[N];

bool ok[N];

int gcd(int a, int b) {
	if(a < b) swap(a, b);
	if(b == 0) return a;
	return gcd(b, a%b);
}

int main() {
	int n, x;
	cin >> n >> x;
	for(int i = 1; i <= n; ++i) {
		cin >> t[i];
		if(t[i]%x == 0) ok[i] = true;
	}

	for(int i = 1; i <= n; ++i) {
		if(!ok[i]) continue;
		int k = i;
		while(ok[k]) {
			++k; 
		}
		--k;

		int g = t[i];
		for(int j = i+1; j <= k; ++j) {
			g = gcd(g, t[j]);
		}
		if(g == x) {
			cout << "YES\n";
			return 0;
		}
		i = k+1;
	}

	cout << "NO\n";





}

Test details

Test 1

Verdict: ACCEPTED

input
3 2
4 6 7

correct output
YES

user output
YES

Test 2

Verdict: ACCEPTED

input
3 2
4 7 6

correct output
NO

user output
NO

Test 3

Verdict: ACCEPTED

input
1 1
1

correct output
YES

user output
YES

Test 4

Verdict: ACCEPTED

input
2 2
4 1

correct output
NO

user output
NO

Test 5

Verdict: ACCEPTED

input
100000 99991
48913 47865 43120 26396 63608 ...

correct output
YES

user output
YES

Test 6

Verdict: ACCEPTED

input
100000 99991
63439 84900 80538 966 44604 45...

correct output
NO

user output
NO

Test 7

Verdict: ACCEPTED

input
100000 3
51120 74286 27282 34584 75480 ...

correct output
NO

user output
NO

Test 8

Verdict: ACCEPTED

input
100000 2
33825 30524 70613 32028 68989 ...

correct output
NO

user output
NO

Test 9

Verdict: ACCEPTED

input
100000 2
59658 85500 210 1860 21720 917...

correct output
YES

user output
YES

Test 10

Verdict: ACCEPTED

input
100000 30030
44055 49914 78957 37629 54459 ...

correct output
NO

user output
NO

Test 11

Verdict: ACCEPTED

input
100000 30030
19334 66815 42941 59094 97276 ...

correct output
NO

user output
NO

Test 12

Verdict: ACCEPTED

input
100000 30030
75201 75765 23340 72263 31321 ...

correct output
YES

user output
YES

Test 13

Verdict: ACCEPTED

input
100000 24595
8503 96208 65040 98141 79097 9...

correct output
NO

user output
NO

Test 14

Verdict: ACCEPTED

input
100000 57680
10991 66626 27857 65777 46281 ...

correct output
YES

user output
YES

Test 15

Verdict: ACCEPTED

input
100000 62229
22193 77638 2029 11583 66798 4...

correct output
NO

user output
NO

Test 16

Verdict: ACCEPTED

input
100000 78303
3268 66800 58156 32442 50242 2...

correct output
YES

user output
YES

Test 17

Verdict: ACCEPTED

input
100000 28195
67974 63005 16184 10579 23382 ...

correct output
NO

user output
NO

Test 18

Verdict: ACCEPTED

input
100000 49101
33192 63413 59812 73646 98211 ...

correct output
YES

user output
YES

Test 19

Verdict: ACCEPTED

input
100000 99912
16881 26353 52138 60834 88113 ...

correct output
NO

user output
NO

Test 20

Verdict: ACCEPTED

input
100000 75958
41070 22435 99022 7263 55481 7...

correct output
YES

user output
YES