蓝桥杯历届真题 日志统计【第九届】【省赛】【B组】

题目链接:http://lx.lanqiao.cn/problem.page?gpid=T2730

没有过多的技巧,我就是一个刷题的垃圾

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 bool vis[100010];
 4 int ans;
 5 struct node
 6 {
 7     int ts;
 8     int id;
 9 }a[100010];
10 bool cmp(node a,node b)//先排个序,如果编号相同的话就按照时间大小排序,否则按编号大小排序 
11 {
12     if(a.id==b.id)
13     return (a.ts<b.ts);
14     else 
15     return a.id<b.id;
16 }
17 int n,d,k;
18 int main()
19 {
20     ios::sync_with_stdio(false);
21     cin>>n>>d>>k;
22     for(register int i=0;i<n;i++)
23     {
24         cin>>a[i].ts>>a[i].id;
25     }
26     sort(a,a+n,cmp);//排个序 
27     for(register int i=0;i<n;i++)
28     {
29         ans=1;//它本身也是一个赞 
30         if(!vis[a[i].id])// 没被标记过 
31         {
32             for(register int j=i+1;j<n;j++)
33             {
34                 if(a[i].id==a[j].id&&(a[j].ts<a[i].ts+d))//编号相等并且满足时间段 
35                 {
36                     ans++;
37                 }
38                 if(ans==k||a[i].id!=a[j].id)//剪枝 
39                 break;
40             }
41             if(ans==k)//满足了最后的条件标记并且输出编号 
42             {
43                 vis[a[i].id]=true;//标记这个已经满足了 
44                 cout<<a[i].id<<endl;//输出 
45             }
46         }
47         
48     }
49     return 0;
50 }

 

posted @ 2022-03-21 19:09  江上舟摇  阅读(79)  评论(0编辑  收藏  举报