[Codeforces] #2266A - Good Contest [C++]
[Codeforces] #2266A - Good Contest [C++]
1. 아이디어
n명의 참가자와 세 문제가 있고, 각 문제를 푼 참가자 수가 a1, a2, a3로 주어질 때 세 문제를 모두 풀지 못한 약한 참가자 수의 최솟값을 구하는 문제다. 세 문제를 모두 풀지 못한 약한 참가자의 수는 전체 참가자 수에서 세 문제를 모두 푼 참가자 수의 최댓값을 빼는 것으로도 구할 수 있는데, 세 문제를 모두 푼 참가자 수의 최댓값은 a1, a2, a3의 교집합의 최댓값과 같고 이는 세 값의 최솟값이 된다.
2. 복잡도
| 접근 | 시간 | 공간 |
|---|---|---|
| 풀이 | $O(T)$ | $O(1)$ |
($T$ = 테스트 케이스 수)
3. 코드
풀이 [C++]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <bits/stdc++.h>
using namespace std;
void solve() {
int n, a1, a2, a3;
cin >> n >> a1 >> a2 >> a3;
cout << n - min({a1, a2, a3}) << '\n';
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
while (t--) solve();
}
This post is licensed under CC BY 4.0 by the author.