# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
120612 | Mercenary | Ice Hockey World Championship (CEOI15_bobek) | C++14 | 343 ms | 16848 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define taskname "A"
#define pb push_back
#define mp make_pair
#ifndef LOCAL
#define cerr if(0)cout
#endif
typedef long double ld;
typedef long long ll;
typedef pair<int,int> ii;
typedef pair<ll,int> lli;
const int maxn = 1e6 + 6;
const ld inf = 1e9 + 5;
int n;
ll a[maxn];
ll can;
vector<ll> val , val1;
void enter(){
cin >> n >> can;
// n = 40;can = 1e18;
for(int i = 0 ; i < n / 2 ; ++i){
cin >> a[i];
// a[i] = 1;
}
val.reserve((1 << (n / 2)));
for(int j = 0 ; j < (1 << (n / 2)) ; ++j){
ll sum = 0;
for(int i = 0 ; i < n / 2 ; ++i){
if((j >> i) & 1)sum += a[i];
if(sum > can)break;
}
if(sum <= can)val.pb(sum);
}
n -= (n / 2);
for(int i = 0 ; i < n ; ++i){
cin >> a[i];
// a[i] = 1;
}
val1.reserve((1 << n));
for(int j = 0 ; j < (1 << n) ; ++j){
ll sum = 0;
for(int i = 0 ; i < n ; ++i){
if((j >> i) & 1)sum += a[i];
if(sum > can)break;
}
if(sum <= can)val1.pb(sum);
}
sort(val.begin(),val.end());
sort(val1.begin(),val1.end());
int j = val.size() - 1;
ll res = 0;
for(ll c : val1){
while(j >= 0 && val[j] > can - c)--j;
res += j + 1;
// cout << " " << c << " " << j << endl;
}
// cout << val1.size() << " " << val.size() << endl;
cout << res;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
if(fopen(taskname".INP","r")){
freopen(taskname".INP", "r",stdin);
freopen(taskname".OUT", "w",stdout);
}
enter();
}
Compilation message (stderr)
# | 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... |