ACwing中怎么实现日志统计

本篇文章给大家分享的是有关ACwing中怎么实现日志统计,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define x first
#define y second

using namespace std;
typedef pair<int, int> PII;

const int N=100010;

//n行日志,d区间长,k个赞
int n,d,k;
PII logs[N];
int cnt[N];
bool st[N];

int main(){
    scanf("%d%d%d", &n, &d,&k);
    //x:时间 y:id
    for(int i=0;i<n;i++) scanf("%d%d", &logs[i].x, &logs[i].y);
    sort(logs,logs+n);
    
    for(int i=0,j=0;i<n;i++){
        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<100000;i++){
        if(st[i]) printf("%d\n",i);
    }
    return 0;
}

以上就是ACwing中怎么实现日志统计,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。