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 }

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-10-18
  • 2022-12-23
  • 2022-12-23
  • 2022-02-28
  • 2022-12-23
  • 2021-05-15
猜你喜欢
  • 2021-08-15
  • 2022-12-23
  • 2022-12-23
  • 2021-08-19
  • 2021-06-14
  • 2022-12-23
相关资源
相似解决方案