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]]となった.
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;
}