432B - Football Kit

3108 ワード

問題解決の考え方:
暴力絶対TLE
1チームがホームユニホームを着る回数=このチームのアウェーユニホームの色が他のチームのホームユニホームの色と衝突する回数+(n-1)
#include <stdio.h>

#include <string.h>

#include <iostream>

using namespace std;

const int MAXSIZE = 100;

const int INF = 0x3f3f3f3f;



int a[100001], b[100001], c[100001], cnt[100001];

int main(){

    int t, i, j, m, n;

    memset(c, 0, sizeof(c));

    memset(cnt, 0, sizeof(cnt));

    scanf("%d",&n);

    for(i = 1; i <= n; ++i){

        scanf("%d%d",&a[i],&b[i]);

        ++cnt[a[i]];

    }

    for(i = 1; i <= n; ++i){

        c[i] += n - 1;

        c[i] += cnt[b[i]];

    }

    int temp = (n - 1) * 2;

    for(i = 1; i <= n; ++i){

        printf("%d %d
",c[i],temp - c[i]); } return 0; }