Untitled
unknown
plain_text
8 months ago
2.9 kB
6
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