@qinxuewen
  • 板块灌水区
  • 楼主Block_user
  • 当前回复1
  • 已保存回复1
  • 发布时间2025/1/15 14:45
  • 上次更新2025/1/15 14:46:32
查看原帖
@qinxuewen
713812
Block_user楼主2025/1/15 14:45
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,a[100005],ans;
int main() {
	cin>>n;
	for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
	ll l=1,r=n;
	while(l<r){
		ans=max(ans,1ll*(r-l)*min(a[l],a[r]));
		if(a[l]<a[r])l++;
		else r--;
	}
	cout<<ans<<'\n';
    return 0;
}
------------------------------------------------
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,s,a[100005],ans=9e18;
int main(){
	cin>>n>>s;
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		a[i]+=a[i-1];
	}
	for(int i=1,j=1;i<=n;i++){
		while(j<=n&&a[j]-a[i-1]<s)j++;
		if(a[j]-a[i-1]>=s)ans=min(ans,j-i+1ll);
	}
	if(ans>1e18)cout<<"0\n";
	else cout<<ans<<'\n';
	return 0;
}
---------------------------------------------
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,s,a[1000005],ans=9e18;
int main(){
	cin>>n>>s;
	for(int i=1;i<=n;i++){
		scanf("%lld",&a[i]);
		a[i]+=a[i-1];
	}
	for(int i=1,j=1;i<=n;i++){
		while(j<=n&&a[j]-a[i-1]<s)j++;
		if(a[j]-a[i-1]==s)cout<<i<<' '<<j<<'\n';
	}
	return 0;
}
2025/1/15 14:45
加载中...