脑子又卡了。。。来一发set的,STL真心不熟。
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <set>
using namespace std;
int flag[];
set<int>se;
set<int>::iterator it1,it,it2;
int main()
{
int i,x,y,num,n,m;
scanf("%d%d",&n,&m);
for(i = ; i <= n; i ++)
se.insert(i);
for(i = ; i <= m; i ++)
{
scanf("%d%d%d",&x,&y,&num);
it1 = se.lower_bound(x);
for(it = it1; it != se.end()&&(*it) <= y;)
{
if(*it == num)
{
it ++;
continue;
}
flag[*it] = num;
it2 = it;
it2 ++;
se.erase(it);
it = it2;
}
}
for(i = ; i <= n; i ++)
{
if(i == )
printf("%d",flag[i]);
else
printf(" %d",flag[i]);
}
printf("\n");
return ;
}