답안 #833285

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
833285 2023-08-22T04:06:29 Z vjudge1 Ice Hockey World Championship (CEOI15_bobek) C++14
0 / 100
337 ms 4392 KB
#include<bits/stdc++.h>
#define sf scanf
#define pf printf
#define ll int
#define ll long long
#define rep(i,x,y) for(int i=x;i<=(y);i++)
#define drep(i,x,y) for(int i=x;i>=(y);i--)
#define pb push_back
#define lb long double
using namespace std;

inline ll in(){ ll x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9') (ch=='-'?f=-1:1),ch=getchar(); while(ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-'0',ch=getchar(); return x*f; }
int n;
ll m,w[45],cnt,ans,p[1100000];
int main(){
	n=in(); m=in();
	rep(i,1,n) w[i]=in();
	sort(w+1,w+1+n);
	if(n==1){
		pf("%lld\n",(m>=w[1]?1:0));
		return 0;
	}
	int s=n/2-1;
	rep(i,0,(1<<s)-1){
		ll v=0;
		rep(j,0,s-1){
			if((i>>j)&1) v+=w[j+1];
			if(v>m) break;
		}
		if(v>m) continue;
		p[++cnt]=v;
	}
	sort(p+1,p+1+cnt);
	s=n-s;
	rep(i,0,(1<<s)-1){
		ll v=0;
		rep(j,0,s-1){
			if((i>>j)&1) v+=w[j+n/2];
			if(v>m) break;
		}
		if(v>m) continue;
		ll d=lower_bound(p+1,p+1+cnt,m-v)-p;
		if(d>cnt) --d;
	//	cout<<d<<' '<<p[d]<<"  "<<v<<"\n";
		ans+=d;
	}
	pf("%lld\n",ans);
	return 0;
}

Compilation message

bobek.cpp:5: warning: "ll" redefined
    5 | #define ll long long
      | 
bobek.cpp:4: note: this is the location of the previous definition
    4 | #define ll int
      | 
bobek.cpp: In function 'int main()':
bobek.cpp:20:10: warning: format '%lld' expects argument of type 'long long int', but argument 2 has type 'int' [-Wformat=]
   20 |   pf("%lld\n",(m>=w[1]?1:0));
      |       ~~~^    ~~~~~~~~~~~~~
      |          |            |
      |          |            int
      |          long long int
      |       %d
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 30 ms 468 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 37 ms 812 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 69 ms 816 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 337 ms 2344 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 29 ms 568 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 301 ms 4392 KB Output isn't correct
2 Halted 0 ms 0 KB -