第三题是双指针: 代码: #include<bits/stdc++.h> using namespace std; int main(void) {     int n,m;     cin >> n >> m;     vector<int> v;     for (int i = 0; i < n; ++i) {         int t;         cin >> t;         v.push_back(t);     }     int l=-1, r=0;     int sum = 0;     int ans = 0;     while (r<v.size())     {                  if (sum >= -m) {             ans = max(r - l-1, ans);             sum += v[r];             ++r;         }         else {             ++l;             sum -= v[l];         }     }     if (sum >= -m) {         ans = max(r - l - 1, ans);        // sum += v[r];         ++r;     }     cout << ans;     return 0; }