比赛 2026.5.16 评测结果 AAWWWWWWWA
题目名称 Divide 最终得分 30
用户昵称 汐汐很希希 运行时间 0.399 s
代码语言 C++ 内存使用 3.70 MiB
提交时间 2026-05-16 10:54:31
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2010;
int n,m,w[N];
int main()
{
    freopen("divide.in","r",stdin);
    freopen("divide.out","w",stdout);
    
    cin>>n>>m;
    for(int i=1;i<=n;i++) cin>>w[i];
    sort(w+1,w+n+1);
    int flag=true;
    for(int i=2;i<n;i++) if(w[i]-w[i-1]!=w[i+1]-w[i]) flag=false;
    if(n<=18){
        ll ans=-1,sum=0;
        for(int k=1;k<=(1<<n);k++)
        {
            ll cnt=0;
            for(int i=1;i<=n;i++)
            {
                if(!(k&(1<<i))) continue;
                for(int j=1;j<=n;j++)
                {
                    if(k&(1<<j)) continue;
                    if(w[i]+w[j]>=m) cnt++;
                }
            }
            if(cnt>ans){
                ans=cnt,sum=1;
            }else if(cnt==ans){
                sum++;
            }
        }
        cout<<ans<<' '<<sum<<endl;
    }else if(flag){
        
    }else{
        cout<<"I can't do it"<<endl;
    }
    return 0;
}