求调 B1
  • 板块学术版
  • 楼主水星湖psgqwq
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/7/24 00:36
  • 上次更新2024/7/24 00:53:48
查看原帖
求调 B1
974277
水星湖psgqwq楼主2024/7/24 00:36

#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 2e5 + 5;
int n, a[N], m;
void solve() {
    cin >> n >> m;
    for(int i = 1; i <= n; i++)
        cin >> a[i];
    sort(a + 1, a + n + 1);
    int j = 1, sum = a[1];
    int ans = 0;
    for(int i = 1; i <= n; i++) {
        while(j < n && sum + a[j+1] <= m && a[j+1] - a[i] <= 1) 
            sum += a[++j];
        ans = max(ans, sum);
        sum -= a[i];
    }
    cout << ans << endl;
}

signed main() {
    int t; cin >> t;
    while(t--)
        solve();
    return 0;
}


2024/7/24 00:36
加载中...