이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define DIMN 50
#define DIMM 2000000
using namespace std;
long long v[DIMN],d[DIMM];
long long m;
int n,i,k;
int main (){
cin>>n>>m;
for (i=1;i<=n;i++)
cin>>v[i];
/// iau toate mastile din prima jumatate
int val = n/2;
for (long long mask=0;mask<(1<<val);mask++){
long long sum = 0;
for (int bit=0;bit<val;bit++)
if (mask&(1<<bit))
sum += v[bit+1];
if (sum <= m)
d[++k] = sum;
}
sort (d+1,d+k+1);
val = n - n/2;
long long ans = 0;
for (long long mask=0;mask<(1<<val);mask++){
long long sum = 0;
for (int bit=0;bit<val;bit++)
if (mask&(1<<bit))
sum += v[n/2+bit+1];
if (sum > m)
continue;
long long dif = m - sum;
int st = 1, dr = k, sol = 0;
while (st <= dr){
int mid = (st+dr)>>1;
if (d[mid] <= dif){
sol = mid;
st = mid+1;
} else dr = mid-1;
}
ans += sol;
}
cout<<ans;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |