답안 #394094

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
394094 2021-04-25T13:36:00 Z Taresu Ice Hockey World Championship (CEOI15_bobek) C++11
50 / 100
743 ms 20828 KB
#include <bits/stdc++.h>

#define ll long long 
#define pb push_back
#define upb(a, x) upper_bound(a.begin(), a.end(), x)
#define sz size 
#define stvr(a) sort(a.begin(), a.end())
using namespace std;

vector<ll int> l, r, rr, l1, v;
ll int  m;
ll int n;

bool lig(ll int a, ll int b){ return a&(1<<b); }

int main(){
	ios::sync_with_stdio(0);
	cin >> n >> m;

	for(ll int i=0;i<n;i++){
		int a;
	    cin >> a;
		if(a<=m) v.pb(a);
	}

	for(ll int i=0;i<v.sz()/2;i++) l.pb(v[i]);
	for(ll int i=v.sz()/2;i<v.sz();i++)r.pb(v[i]);
	
	for(ll int mask=0;mask<(1<<l.sz());mask++){
		ll int a=0;
		for(ll int i=0;i<l.sz();i++){
			if(lig(mask, i)) a+=l[i];
		}
		if(a<=m) l1.pb(a);
	}for(ll int mask=0;mask<(1<<r.sz());mask++){
		ll int a=0;
		for(ll int i=0;i<r.sz();i++){
			if(lig(mask, i)) a+=r[i];
		}
		if(a<=m) rr.pb(a);
	}

	stvr(rr);

	ll int resp=0;
	for(ll int i=0;i<l1.size();i++){	
		if(upb(rr, m-l1[i])==rr.end()){
			resp+=rr.sz();
			continue;
		}
		resp+=upb(rr, m-l1[i])-rr.begin();
	}

	cout << resp << '\n';

	return 0;
}

Compilation message

bobek.cpp: In function 'int main()':
bobek.cpp:26:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |  for(ll int i=0;i<v.sz()/2;i++) l.pb(v[i]);
      |                 ~^~~~~~~~~
bobek.cpp:27:25: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |  for(ll int i=v.sz()/2;i<v.sz();i++)r.pb(v[i]);
      |                        ~^~~~~~~
bobek.cpp:31:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |   for(ll int i=0;i<l.sz();i++){
      |                  ~^~~~~~~
bobek.cpp:37:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |   for(ll int i=0;i<r.sz();i++){
      |                  ~^~~~~~~
bobek.cpp:46:18: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |  for(ll int i=0;i<l1.size();i++){
      |                 ~^~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 204 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 332 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 1936 KB Output is correct
2 Correct 138 ms 5440 KB Output is correct
3 Correct 743 ms 20824 KB Output is correct
4 Correct 137 ms 5372 KB Output is correct
5 Correct 18 ms 1552 KB Output is correct
6 Correct 8 ms 976 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 63 ms 2888 KB Output is correct
2 Correct 44 ms 1992 KB Output is correct
3 Correct 266 ms 10564 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 8 ms 976 KB Output is correct
6 Correct 19 ms 1612 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 79 ms 3476 KB Output is correct
2 Correct 184 ms 6592 KB Output is correct
3 Correct 206 ms 6584 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 103 ms 6596 KB Output is correct
6 Correct 261 ms 20828 KB Output is correct
7 Correct 1 ms 204 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 163 ms 12748 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 19 ms 1960 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 217 ms 20812 KB Output isn't correct
2 Halted 0 ms 0 KB -