제출 #1122352

#제출 시각아이디문제언어결과실행 시간메모리
1122352ElayV13Ice Hockey World Championship (CEOI15_bobek)C++17
100 / 100
314 ms22960 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define ld double const int INF = 1e18; const int mod = 12345; const int sz = 3e5 + 5; const int usz = 1e6 + 5; signed main() { ios_base::sync_with_stdio(0);cin.tie(0); int n , m; cin >> n >> m; vector < int > a(n); for(int i = 0;i < n;i++) cin >> a[i]; sort(a.begin() , a.end()); vector < int > q1; vector < int > q2; for(int i = 0;i < n / 2 + (n & 1);i++) q1.push_back(a[i]); for(int i = n / 2 + (n & 1);i < n;i++) q2.push_back(a[i]); vector < int > pos1; vector < int > pos2; for(int bit = 0;bit <= pow(2 , q1.size()) - 1;bit++) { int sum = 0; for(int i = 0;i < q1.size();i++) { if((1 << i) & bit) { sum += q1[i]; } } if(sum <= m) pos1.push_back(sum); } for(int bit = 0;bit <= pow(2 , q2.size()) - 1;bit++) { int sum = 0; for(int i = 0;i < q2.size();i++) { if((1 << i) & bit) { sum += q2[i]; } } if(sum <= m) pos2.push_back(sum); } sort(pos1.begin() , pos1.end()); sort(pos2.begin() , pos2.end()); int ans = 0; for(int i = 0;i < pos1.size();i++) { int l = 0 , r = pos2.size() - 1 , best = -1; while(l <= r) { int mid = (l + r) >> 1; if(pos2[mid] + pos1[i] <= m) { best = max(best , mid + 1); l = mid + 1; } else r = mid - 1; } ans += best; } cout << ans << endl; }

컴파일 시 표준 에러 (stderr) 메시지

bobek.cpp: In function 'int main()':
bobek.cpp:30:22: 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]
   30 |      for(int i = 0;i < q1.size();i++)
      |                    ~~^~~~~~~~~~~
bobek.cpp:42:22: 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]
   42 |      for(int i = 0;i < q2.size();i++)
      |                    ~~^~~~~~~~~~~
bobek.cpp:54:20: 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]
   54 |    for(int i = 0;i < pos1.size();i++)
      |                  ~~^~~~~~~~~~~~~
#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...