站外求调
  • 板块学术版
  • 楼主Lovely_Elaina
  • 当前回复205
  • 已保存回复205
  • 发布时间2023/5/21 08:24
  • 上次更新2023/10/23 15:10:41
查看原帖
站外求调
781159
Lovely_Elaina楼主2023/5/21 08:24

#include <bits/stdc++.h>
// #define int long long
#define max(a,b) (a>b?a:b)
#define endl '\n'
using namespace std;
const int N = 100005;

int n,a[N*2];
queue<int > q;

int ma,si,sum;

signed main(){
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    
    cin >> n;
    for(int i = 1; i <= n; i++){
        cin >> a[i];
        a[i+n] = a[i];
    }
    
    int m = n * 2;
    
    q.push(a[1]);
    si = 1,sum = a[1];
    
    for(int i = 2; i <= m; i++){
        if(si > n){
            si--;
            sum -= q.front();
            q.pop();
        }
        
        if(sum+a[i] <= a[i]){
            sum = a[i];
            while(!q.empty()) q.pop();
            q.push(a[i]);
            si = 1;
        }else{
            si++;
            q.push(a[i]);
            sum += a[i];
        }
        
        ma = max(ma,sum);
    }
    
    cout << ma << endl;
	return 0;
}

这么简单的题我做不出来是不是废了 /fad

2023/5/21 08:24
加载中...