CF432B Football Kit 题解
思路
利用桶数组储存冲突的球服,每只队伍都会比 \(n\) 场,如果别人的队服与自己相同,穿主队服的场数就加上冲突队伍数,穿客队服场数的计算同理。
代码
#include<bits/stdc++.h>
using namespace std;
int z[100005],c[100005],t[100005];//t为桶数组
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
cin>>z[i]>>c[i],t[z[i]]++;//主队服冲突
for(int i=1;i<=n;i++)
cout<<n+t[c[i]]-1<<" "<<n-t[c[i]]-1<<endl;
//n+t[c[i]]-1:n为必穿主队服的场数,t[c[i]]-1为冲突场数,-1是因为不能包含自己。n-t[c[i]]-1同理。
return 0;
}