1648B - Integral Array - CodeForces Solution


brute force constructive algorithms data structures math *1800

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn = 1e6 + 5;
int n, _, m, vis[maxn], a, stk[maxn], c, pre[maxn];
void solve() {
	cin >> n >> c;
	int jud = 0, ans = 0, tot = 0;
	for (int i = 1 ; i <= n ; ++i) {
		cin >> a;
		if (a == 1) jud = 1;
		if (!vis[a]) stk[++tot] = a;
		vis[a]++;
	}
	for (int i = 1 ; i <= c ; ++i) pre[i] = pre[i - 1] + (vis[i] != 0);
	for (int i = 1 ; i <= tot ; ++i) {
		int v = stk[i];
		if (vis[v] > 1 && !jud) ans = 1;
		for (int j = 1 ; j*v <= c ; j++) {
			int r = min(j*v + v - 1, c), l = j*v;
			if (pre[r] - pre[l - 1] && !vis[j]) ans = 1;
		}
	}
	for (int i = 1 ; i <= tot ; ++i) vis[stk[i]] = 0;
	cout << (ans == 1 ? "No" : "Yes");
	if (_) cout << endl;
}
signed main(void) {
	ios::sync_with_stdio(false);
	cin.tie(0); 
	cin >> _;
	while(_--) solve();
	return 0;
}


Comments

Submit
0 Comments
More Questions

739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST
445. Add Two Numbers II
442. Find All Duplicates in an Array
437. Path Sum III
436. Find Right Interval
435. Non-overlapping Intervals
406. Queue Reconstruction by Height
380. Insert Delete GetRandom O(1)
332. Reconstruct Itinerary
368. Largest Divisible Subset
377. Combination Sum IV
322. Coin Change
307. Range Sum Query - Mutable
287. Find the Duplicate Number
279. Perfect Squares
275. H-Index II
274. H-Index
260. Single Number III
240. Search a 2D Matrix II
238. Product of Array Except Self
229. Majority Element II
222. Count Complete Tree Nodes
215. Kth Largest Element in an Array
198. House Robber