Problem Link #include <iostream> #include <vector> #include <algorithm> #include <cmath> using namespace std; const long long N = 100005, INF = 2e9; long long ans[N], d[N]; long long B[N]; int bsearch(int x, int n) { int low = 1; int high = n; int mid, res; res = 0; while(low <= high) { mid = (low + high) / 2; if(ans[mid] <= x) { res = mid; low = mid + 1; } else { high = mid - 1; } } return res; } int main() { int t, n, q, x; std::ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> t; B[0] = 1; for (int i = 1; i <= 60; i++) B[i] = B[i - 1] + B[i - 1]; while(t--) { cin >> n >> q; long long a[n]; for(int i = 1; i <= n; i++) { cin >> a[i]; } sort(a + 1, a + n + 1); for(int i = 1; i <= n; i++) { if(d[i - 1] > a[i]) { ans[i] = ans[i - 1]; d[i] = 2 * (d[i - 1] - a[i
Problem Link #include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { int t, n, q, l, r; vector<int> v; string s; std::ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> t; while(t--) { cin >> n >> q; cin >> s; v.clear(); for(int i = 0; i < n - 2; i++) { if(s[i] == s[i + 1] || s[i + 1] == s[i + 2] || s[i] == s[i + 2]) { v.push_back(i); } } while(q--) { cin >> l >> r; l--; r--; if(r - l + 1 < 3) { cout << "NO\n"; continue; } auto x = upper_bound(v.begin(), v.end(), l - 1); if(x == v.end()) { cout << "NO\n"; } else if(*x >= l && *x + 2 <= r) cout << "YES" << endl; else cout << "NO\n"; } } }