6 条题解
-
1
给的时间限制是2s,感觉就是为了暴力用的。 无重环即可以一对多而不能多对一,循环找到door为0即可。
#include<stdio.h>
#include algorithm//加括号
#define N 100005
using namespace std;
struct node
{
int door;
int t;
}s[N];
int cmp(node a,node b)
{
if(a.t<b.t)
{
return 1;
}
return 0;
}
int main()
{
int n,q,z;
scanf("%d %d",&n,&q);
for(int i=1;i<=n;i++)
{
scanf("%d %d",&s[i].door,&s[i].t);
}
sort(s+1,s+n+1,cmp);
while(q--)
{
scanf("%d",&z);
if(s[z].door==0)
{ printf("0 %d\n",z);
}
else
{
int mm[N];
for(int i=0;i<=N;i++)
{
mm[i]=-1;
}
int cnt=0;
mm[cnt]=s[z].door;
while(mm[cnt]!=0)
{
for(int i=1;i<=n;i++)
{
if(s[i].t==mm[cnt])
{
mm[++cnt]=s[i].door;
break;
}
}
} for(int j=cnt;j>=0;j--)
{
printf("%d ",mm[j]);
}
printf("%d\n",z);
}
}
}
信息
- ID
- 964
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 350
- 已通过
- 106
- 上传者