1 #include<stdio.h>
2 #include<string.h>
3 #define N 8001
4 int color[N],cnt[N];//这个cnt是用来记录颜色i出现的段数 ,注意cnt里的这个N真的需要好大,我以为就几百种呢,结果WA好多次
5 int main()
6 {
7 int i,j,a,b,c,max,n;
8 while(~scanf("%d",&n)){
9 for(max=i=0;i<n;++i){
10 scanf("%d%d%d",&a,&b,&c);
11 for(j=a;j<b;++j)
12 color[j]=c+1;
13 if(max<b) max=b;
14 }
15 for(i=0;i<max;++i){
16 while(i!=0&&color[i]&&color[i]==color[i-1]) //假如颜色不为空且与前一段相同,则继续读下一段
17 ++i;
18 if(color[i])
19 cnt[color[i]-1]++; //颜色为color[i]-1的段数加一
20 }
21 for(i=0;i<N;++i)
22 if(cnt[i]) printf("%d %d\n",i,cnt[i]);//从小到大输出颜色及出现次数
23 memset(color,0,max*sizeof(int));//记得清空
24 memset(cnt,0,sizeof(cnt));
25 putchar('\n');
26 }
27 return 0;
28 }