Codeforces 432 B Football Kit(水題)

2606 ワード

タイトル接続:Codeforces 432 B Football Kit
nチームがあって、各チームは2种类のユニホームがあって、1种はホームの试合で着るので、1种はアウェーの时に着るのです.現在、任意の2チームの間で2試合を行い、それぞれ2チームのホームで1回行われている.しかし、両チームが同じユニホームを着ていると、両チームを区別することができないので、アウェーチームがホームの服を着ています.各チームのホームアウェーの服を何回着たかを聞いた.
解題構想:c[i]は何チームのホームユニホームがiであるかを記録し、p[i]はi番目のチームのユニホームがp[i]モデルであることを示す.もともと各チームがホームウェアを着る回数とアウェーウェアを着る回数はn-1だったが、c[p[i]]はそのチームが衝突した回数であり、ホームウェアの回数+c[p[i]、アウェーウェアの回数-c[p[i]]となった.
#include <cstdio>
#include <cstring>

const int N = 1e5;
int n, a, k, c[N], p[N];

int main () {
    scanf("%d", &n);

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

    for (int i = 0; i < n; i++) {
        scanf("%d%d", &a, &p[i]);
        c[a]++;
    }

    for (int i = 0; i < n; i++)
        printf("%d %d
"
, n - 1 + c[p[i]], n - 1 - c[p[i]]); return 0; }