Submission #1358612

#TimeUsernameProblemLanguageResultExecution timeMemory
1358612jumpIce Hockey World Championship (CEOI15_bobek)C++20
100 / 100
239 ms25016 KiB
#include <bits/stdc++.h>
#define int long long
int n,m;
int arr[50];
std::vector<int> res1;
std::vector<int> res2;
signed main() {
  std::ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  std::cin >> n >> m;
  for(int i=1;i<=n;i++)std::cin >> arr[i];
  int mid = (n+1)/2;
  res1.push_back(0);
  for(int i=1;i<=mid;i++){
    auto temp = res1;
    for(auto num:temp){
      if(num+arr[i]<=m)
      res1.push_back(num+arr[i]);
    }
  }
  res2.push_back(0);
  for(int i=mid+1;i<=n;i++){
    auto temp = res2;
    for(auto num:temp){
      if(num+arr[i]<=m)
      res2.push_back(num+arr[i]);
    }
  }
  std::sort(res1.begin(),res1.end());
  int sum = 0;
  for(auto num:res2){
    int maxV = m-num;
    int cnt = std::upper_bound(res1.begin(),res1.end(),maxV)-res1.begin();
    sum+=cnt;
  }
  std::cout << sum;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...