比赛 |
SBOI2022暑假快乐赛① |
评测结果 |
AWAAEEEEEE |
题目名称 |
孙伯符降临 |
最终得分 |
30 |
用户昵称 |
康尚诚 |
运行时间 |
1.158 s |
代码语言 |
C++ |
内存使用 |
9.47 MiB |
提交时间 |
2022-06-25 10:12:56 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
struct node
{
int atk;
int dft;
int num[1010];//[0]表下属总数,此后第i表示第i个下属编号
int xs[1010];//[i]为1表示是其下属,0表示不是
}mst[1010];
//bool cmp(node a,node b)
//{
// return a.atk<b.atk||(a.atk==b.atk&&a.dft<b.dft);
//}
int n;
int main()
{
freopen("sunbofu.in","r",stdin);
freopen("sunbofu.out","w",stdout);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>mst[i].atk>>mst[i].dft;
mst[i].num[0]=0;
memset(mst[i].xs,1010,0);
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(mst[i].xs[j]==1||i==j)//已经是下属或自身
{
continue;
}
if((mst[i].atk>=mst[j].atk&&mst[i].dft>=mst[j].dft)&&mst[i].atk+mst[i].dft!=mst[j].atk+mst[j].dft)
{
mst[i].num[0]++;mst[i].num[mst[i].num[0]]=j;mst[i].xs[j]=1;
if(mst[j].num[0]!=0)
{
for(int k=1;k<=mst[j].num[0];k++)
{
if(mst[i].xs[mst[j].num[k]]==0)
{
mst[i].num[0]++;mst[i].num[mst[i].num[0]]=mst[j].num[k];mst[i].xs[mst[j].num[k]]=1;
}
}
}
}
}
}
for(int i=1;i<=n;i++)
{
cout<<mst[i].num[0]<<endl;
}
// sort(mst+1,mst+1+n,cmp);
// for(int i=1;i<=n;i++)
// {
// cout<<mst[i].atk<<" "<<mst[i].dft<<endl;
// }
}