Post

[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.