Submission #32666

#TimeUsernameProblemLanguageResultExecution timeMemory
32666imaxblueIce Hockey World Championship (CEOI15_bobek)C++14
100 / 100
329 ms67636 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define mp make_pair #define pb push_back #define x first #define y second #define pii pair<int, int> #define p3i pair<pii, int> #define pll pair<ll, ll> #define p3l pair<pll, ll> #define lseg L, (L+R)/2, N*2+1 #define rseg (L+R)/2+1, R, N*2+2 #define ub upper_bound #define lb lower_bound #define pq priority_queue #define MN 1000000007 #define fox(k, x) for (int k=0; k<x; ++k) #define fox1(k, x) for (int k=1; k<=x; ++k) #define foxr(k, x) for (int k=x-1; k>=0; --k) #define fox1r(k, x) for (int k=x; k>0; --k) #define ms multiset #define flood(x) memset(x, 0x3f3f3f3f, sizeof x) #define drain(x) memset(x, 0, sizeof x) #define rng() (rand() >> 3)*rand() int n, p, t, psa[1 << 22]; ll k, a[45], ans; vector<pair<ll, int> > v; void dfs(int N, ll S){ if (S>k) return; if (N==20 || N==n){ if (t==1) S=k-S; v.pb(mp(S, t)); return; } dfs(N+1, S); dfs(N+1, S+a[N]); } int main() { cin >> n >> k; fox(l,n) cin >> a[l]; if (n<=20){ t++; } else {psa[0]--; dfs(0, 0); t++; n-=20; fox(l, 20) a[l]=a[l+20]; } dfs(0,0); //return 0; sort(v.begin(), v.end()); psa[0]++; fox(l, v.size()){ //cout << v[l].x << endl; if (v[l].y==0) psa[l]++; else ans+=psa[l]; psa[l+1]+=psa[l]; } cout << ans; return 0; }

Compilation message (stderr)

bobek.cpp: In function 'int main()':
bobek.cpp:18:34: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define fox(k, x) for (int k=0; k<x; ++k)
                                  ^
bobek.cpp:56:2: note: in expansion of macro 'fox'
  fox(l, v.size()){
  ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...