比赛 2026.5.16 评测结果 AAWMMMMMMA
题目名称 Divide 最终得分 30
用户昵称 LikableP 运行时间 1.344 s
代码语言 C++ 内存使用 1.50 MiB
提交时间 2026-05-16 12:01:06
显示代码纯文本
#include <cstdio>

int n, m;
int w[20];
int group[20];
int maxx, maxi;
 
void dfs(int now) {
  if (now > n) {
    int ans = 0;
    for (int i = 1; i <= n; ++i) {
      for (int j = i + 1; j <= n; ++j) if (group[i] != group[j]) {
        if (w[i] + w[j] >= m) ++ans;
      }
    }
    if (ans > maxx) {
      maxx = ans;
      maxi = 1;
    } else if (ans == maxx) {
      ++maxi;
    }
    return ;
  }
  group[now] = 1;
  dfs(now + 1);
  group[now] = 2;
  dfs(now + 1);
  return ;
}

int main() {
  freopen("divide.in", "r", stdin);
  freopen("divide.out", "w", stdout);
  scanf("%d %d", &n, &m);
  for (int i = 1; i <= n; ++i) {
    scanf("%d", &w[i]);
  }  
  
  dfs(1);
  
  printf("%d %d\n", maxx, maxi);
  return 0;
}