0
点赞
收藏
分享

微信扫一扫

Knight Tournament CodeForces - 357C

纽二 2022-06-15 阅读 60


模拟链表 next[i]表示第i个元素左边(右边亦可)第一个需要改变的元素

亦可用并查集

 

#include <stdio.h>

int f[300010],next[300010];

int min(int u,int v);

int main()
{
int n,m,i,j,x,y,z,t;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
{
f[i]=0;
next[i]=i+1;
}
while(m--)
{
scanf("%d%d%d",&x,&y,&z);
for(i=x;i<=y;i=t)
{
if(f[i]==0&&i!=z) f[i]=z;
t=next[i];
if(i<z)
{
next[i]=z;
}
else
{
next[i]=next[y];
}
}
}
for(i=1;i<n;i++)
{
printf("%d ",f[i]);
}
printf("%d\n",f[i]);
}
return 0;
}

int min(int u,int v)
{
if(u<v) return u;
else return v;
}

 

 

 


举报

相关推荐

0 条评论