카테고리 없음

[알고리즘 C++] 백준 17947 - 상남자 곽철용

gmwoo 2021. 12. 17. 11:39
#include <iostream>
using namespace std;

int cnt[400005]; //Max k

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    int n, m, k;
    cin >> n >> m >> k; // Input n m k
    for (int i = 1; i <= 4 * n; i++) cnt[i % k]++; // Mod count about k
    for (int i = 0; i < 2 * m; i++) { // Drop first draw cards 
        int t;
        cin >> t;
        cnt[t % k]--;
    }
    int a, b; // Gwak's second draw cards
    cin >> a >> b;
    int diff = abs(a % k - b % k);
    cnt[a % k]--; cnt[b % k]--;
    int ans = 0;
    int val = 0;
    for (int i = diff + 1; i < k; i++) { // I don't understand...Sorry..
        val += cnt[i - diff - 1];
        ans += min(val, cnt[i]);
        val -= min(val, cnt[i]);
    }
    cout << min(ans, m - 1);
}
반응형