페이지

2215번: 원형 네트워크

https://www.acmicpc.net/problem/2215


#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
int n, p, sw[1000];
vector<int> adj[1000];
int main() {
    scanf("%d %d", &n, &p);
    for (int i = 0; i < p; i++) {
        int a, b;
        scanf("%d %d", &a, &b);
        adj[a - 1].push_back(b - 1);
        adj[b - 1].push_back(a - 1);
    }
    int res = 1e3;
    for (int i = 0; i < n; i++) {
        fill(sw, sw + n, 0);
        int j = i, s = 0, cnt = 0;
        do {
            for (auto it : adj[j])
                sw[j]++, sw[it] -= 2;
            s += sw[j];
            cnt += s > 0;
        } while ((j = (j + 1) % n) != i);
        res = min(res, cnt);
    }
    printf("%d", res);
    return 0;
}

댓글 없음 :

댓글 쓰기