Submission #208563

#TimeUsernameProblemLanguageResultExecution timeMemory
208563fr_klrIce Hockey World Championship (CEOI15_bobek)C++14
30 / 100
234 ms20816 KiB
//You can't fill the hole inside you with money, drugs and cars #include<bits/stdc++.h> using namespace std; long long n, m; vector<long long> v, a, b; void create(int st, int en, vector<long long> &w){ int sz = en - st; w.push_back(0); for(int mask = 1; mask < (1 << sz); mask++) w.push_back(w[mask - (mask & -mask)] + v[st + __builtin_ctz(mask)]); } long long inp(){ long long A; cin >> A; return A; } void input(){ cin >> n >> m; for(int i = 0; i < n; i++) v.push_back(inp()); } long long matches(int p1 = 0, int p2 = b.size() - 1, long long ans = 0){ sort(a.begin(), a.end()); sort(b.begin(), b.end()); for(; p2 > 0 and p1 < a.size(); p1++){ while(p2 >= 0 and a[p1] + b[p2] > m) p2--; ans += (p2 + 1); } return ans; } long long solve(){ create(0, n/2, a); create(n/2, n, b); return matches(); } int main(){ input(); cout << solve(); }

Compilation message (stderr)

bobek.cpp: In function 'long long int matches(int, int, long long int)':
bobek.cpp:32:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(; p2 > 0 and p1 < a.size(); p1++){
                      ~~~^~~~~~~~~~
#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...