Untitled

 avatar
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