# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
433190 | blue | Ice Hockey World Championship (CEOI15_bobek) | C++17 | 374 ms | 20808 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
/*
Split the matches into two groups of size N/2.
For each group, create a sorted list of all possible subset sums.
Use two pointers to compute the total number of combinations.
*/
int main()
{
int N;
long long M;
cin >> N >> M;
int a = N/2, b = N - N/2;
vector<long long> A(a), B(b);
for(int i = 0; i < a; i++) cin >> A[i];
for(int j = 0; j < b; j++) cin >> B[j];
vector<long long> A_sum, B_sum;
long long temp;
for(int mask = 0; mask < (1 << a); mask++)
{
temp = 0;
for(int i = 0; i < a; i++) if(mask & (1 << i)) temp += A[i];
A_sum.push_back(temp);
}
sort(A_sum.begin(), A_sum.end());
for(int mask = 0; mask < (1 << b); mask++)
{
temp = 0;
for(int i = 0; i < b; i++) if(mask & (1 << i)) temp += B[i];
B_sum.push_back(temp);
}
sort(B_sum.begin(), B_sum.end());
long long a_index = 0;
long long b_index = B_sum.size()-1;
long long res = 0;
for(a_index = 0; a_index < A_sum.size(); a_index++)
{
while(A_sum[a_index] + B_sum[b_index] > M)
{
if(b_index == 0) break;
else b_index--;
}
if(A_sum[a_index] + B_sum[b_index] > M) break;
// cout << a_index << ' ' << b_index << '\n';
res += b_index + 1;
}
cout << res << '\n';
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |