返回题解分享
讨论 / 题解分享/ 帖子详情

日志统计(编程题) - 题解

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
#define x first 
#define y second
int n,d,k;
int cnt[N];
bool st[N];
typedef pair<int,int> PII;
PII logs[N];
int main()
{
    cin>>n>>d>>k;
    for(int i=0;i<n;i++)cin>>logs[i].x>>logs[i].y;
    sort(logs,logs+n);//时间进行排序
    for(int i=0,j=0;i<n;i++)//j是左端点
    {
        int id=logs[i].y;
        cnt[id]++;
        while(logs[i].x-logs[j].x>=d)
        {
            cnt[logs[j].y]--;
            j++;
        }
        if(cnt[id]>=k)st[id]=true;
    }
    for(int i=0;i<100010;i++)if(st[i])cout<<i<<endl;
    return 0;
}
0 回复 0 转发 0 喜欢 0 阅读
回复 (0)
默认 最新
暂无回复,快来抢沙发!