记录编号 572009 评测结果 TTTTTTTEEETTEEEEEEEE
题目名称 [NOI Online 2020 1st]最小环(民间数据) 最终得分 0
用户昵称 GravatarHeSn 是否通过 未通过
代码语言 C++ 运行时间 20.154 s
提交时间 2022-06-27 14:34:24 内存使用 0.00 MiB
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n, m, a[100], k, num[100];
long long ans;
bool vis[100] = {0};
int check() {
	long long sum = 0;
	for(int i = 1; i <= n; i ++) {
		for(int j = i; j <= n; j ++) {
			if(min(j - i, i + n - j) == k) {
				sum += a[num[i]] * a[num[j]];
			}
		}
	}
	ans = max(ans, sum);
	return 0;
}
int dfs(int x) {
	if(x == n + 1) {
		check();
		return 0;
	}
	for(int i = 1; i <= n; i ++) {
		if(vis[i] == 0) {
			vis[i] = 1;
			num[x] = i;
			dfs(x + 1);
			vis[i] = 0;
		}
	}
}
int main() {
    freopen("noi_online2020_ring.in", "r", stdin);
    freopen("noi_online2020_ring.out", "w", stdout);
    cin >> n >> m;
    for(int i = 1; i <= n; i ++) {
    	cin >> a[i];
	}
	for(int i = 1; i <= m; i ++) {
		cin >> k;
		ans = 0;
		dfs(1);
		cout << ans << endl;
	}
    return 0;
}