WA求调,玄关
查看原帖
WA求调,玄关
1163457
UncleEric楼主2024/7/21 20:05

WA on #12 #18 #24

附代码,WA点普遍答案数据大

#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
	int x=0,f=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
	while(isdigit(ch))x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
	return x*f;
}
int n,ans;int val[5][100005];
int f[5][100005];
inline int maxi(int a,int b,int c){
	if(a>=b&&a>=c)return a;
	if(b>=c)return b;
	return c;
}

signed main(){
	n=read();
	for(int i=1;i<=3;i++){
		for(int j=1;j<=n;j++)val[i][j]=read();
	}
	f[1][1]=val[1][1];f[2][1]=f[1][1]+val[2][1];f[3][1]=f[2][1]+val[3][1];
	for(int i=2;i<=n;i++){
		f[1][i]=maxi(f[1][i-1],f[2][i-1]+val[2][i],f[3][i-1]+val[2][i]+val[3][i])+val[1][i];
		f[2][i]=maxi(f[2][i-1],f[1][i-1]+val[1][i],f[3][i-1]+val[3][i])+val[2][i];
		f[3][i]=maxi(f[3][i-1],f[2][i-1]+val[2][i],f[1][i-1]+val[2][i]+val[1][i])+val[3][i];
		if(i>=3){
			int mid=val[1][i]+val[2][i]+val[3][i]+val[1][i-1]+val[2][i-1]+val[3][i-1];
			f[1][i]=max(f[1][i],f[3][i-2]+mid);
			f[3][i]=max(f[3][i],f[1][i-2]+mid);
		}		
	}
	cout<<f[3][n];
	return 0;
}
2024/7/21 20:05
加载中...