Untitled
unknown
plain_text
13 days ago
2.9 kB
3
Indexable
#include <iostream> #include <bits/stdc++.h> #define ll long long using namespace std; // مهممممممممممممممممممممممممممممممم اوييييييييييييي //main diagonal & minor diagonal /* bool check(int n, vector<ll>&v, ll x) { int l = 0, r = n - 1; while (r < v.size()) { if (v[r] - (l ? v[l - 1] : 0) <= x) { // the sum mn l to r // (l ? v[l - 1] : 0) if [ (l > 0) ----> v[l-1] ] else [( (l==0) ---> 0 ] return true; } l++, r++; } return false; } int binary_search(vector<int>&v, int l, int r, int x) { int ans = 0; while (l <= r) // O(log n) { int mid = (l + r) / 2; if (check(mid, v, x)) // O(n) { ans++; l = mid + 1; } else r = mid - 1; } return ans; // O(n * log(n)) }*/ void solve() { int n; cin >> n; string s,t; cin >> s >> t; string e1 = ""; string e2 = ""; vector<pair<char, int>> vp; vector<pair<char, int>> vp2; for (int i = 0; i < n; i++) { if (s[i] == 'a' || s[i] == 'c'){ e1 += s[i]; vp.push_back({s[i], i}); } if (t[i] == 'a' || t[i] == 'c') { e2 += t[i]; vp2.push_back({t[i], i}); } } if (e1 == e2) { for (int i = 0; i < vp.size(); i++) { if (vp[i].first == 'a' && vp[i].second > vp2[i].second) { cout << "NO\n"; return; } if (vp[i].first == 'c' && vp[i].second < vp2[i].second) { cout << "NO\n"; return; } } }else { cout << "NO\n"; return; } cout << "YES\n"; } int main() { ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr); #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif int n , x ; cin >> n >>x ; vector<ll>v(n); for (int i = 0; i < n; i++) { cin >> v[i] ; // v[i].second = i+1; } sort(v.begin(),v.end()); vector<pair<ll,ll>>prifx(n+1); prifx[0].first = 0; prifx[0].second = 0; for (int i = 1; i <= n; i++) { prifx[i].first = prifx[i-1].first + v[i-1]; prifx[i].second = i; } // for (int i = 0; i <= n; i++) { // cout << prifx[i].first << " " << prifx[i].second << "\n"; // } ll l = 1 , r = n ; while (l <= r) { if (prifx[r].first - prifx[l-1].first <= x) { cout << prifx[r].second - prifx[l-1].second << "\n"; break; } else { r--; } } if (l > r) { cout << 0 << "\n"; } }
Editor is loading...
Leave a Comment