求助大佬
  • 板块学术版
  • 楼主Jerry_Money
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/8/3 09:41
  • 上次更新2024/8/3 11:01:53
查看原帖
求助大佬
906970
Jerry_Money楼主2024/8/3 09:41

先不用管代码写的啥题(学校比赛题),我想知道为啥freopen关掉能用,开了freopen就必须有in文件才能运行啊?!!!!别的没有in也能运行啊?!!!!

#include<bits/stdc++.h>
#define int long long
using namespace std;
struct sb{
	int maxx,minn,v;
}f[5005][5005];
int a[500005];
int n,k;
vector<int>b;
bool cnm(int x,int y){
	return x>y;
}
signed main(){
	//freopen("value.in","r",stdin);
	//freopen("value.out","w",stdout);
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		f[i][i].v=a[i]*a[i];
		f[i][i].maxx=a[i];
		f[i][i].minn=a[i];
		b.push_back(f[i][i].v);
	}
	for(int l=1;l<n;l++){
		for(int i=1;i+l<=n;i++){
			int j=i+l;
			if(f[i][j].minn==0)f[i][j].minn=1e9;
			for(int k=i;k<j;k++){
				f[i][j].maxx=max(f[i][j].maxx,max(f[i][k].maxx,f[k+1][j].maxx));
				f[i][j].minn=min(f[i][j].minn,min(f[i][k].minn,f[k+1][j].minn));
				f[i][j].v=max(f[i][j].v,f[i][j].maxx*f[i][j].minn*(l+1));
			}
			b.push_back(f[i][j].v);
		}
	}
	sort(b.begin(),b.end(),cnm);
//	for(int i=1;i<=n;i++){
//		for(int j=i;j<=n;j++){
//			cout<<i<<" "<<j<<" "<<f[i][j].
//			v<<" "<<f[i][j].maxx<<" "<<f[i][j].minn<<endl;
//		}
//	}
//	for(int i=4000;i<4500;i++)cout<<i<<" "<<b[i]<<"         ";
	cout<<b[k-1];
	return 0;
}
2024/8/3 09:41
加载中...