| Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|---|
| 39619 | 氩_wjy | 【S】T1 | C++ | 运行超时 | 70 | 1183 MS | 80112 KB | 925 | 2026-01-17 13:54:49 |
#include<bits/stdc++.h> #define int long long using namespace std; const int N=27; int n,m,k,a[N]; int Ans; map<int,int> mp[N]; inline void DFS1(int S,int x,int i){ // cout<<S<<" "<<x<<" "<<i<<endl; if(x>m||S>k)return; if(i==n/2+1){ mp[x][S]++; return; } DFS1(S,x,i+1); DFS1(S+a[i],x,i+1); DFS1(S+a[i]*a[i]+1,x+1,i+1); } inline void DFS2(int S,int x,int i){ if(x>m||S>k)return; if(i==n+1){ for(int j=0;j<=m-x;j++)Ans+=mp[j][k-S]; return; } DFS2(S,x,i+1); DFS2(S+a[i],x,i+1); DFS2(S+a[i]*a[i]+1,x+1,i+1); } signed main(){ #ifndef ONLINE_JUDGE freopen("magic.in","r",stdin); freopen("magic.out","w",stdout); #endif cin>>n>>m>>k; m/=20; // cout<<n<<" "<<m<<" "<<k<<endl; for(int i=1;i<=n;i++)cin>>a[i]; DFS1(0,0,1);DFS2(0,0,n/2+1); cout<<Ans<<endl; return 0; }