40分其余wa,求调
查看原帖
40分其余wa,求调
736900
lishitang楼主2023/9/9 11:20
#include<iostream>
#include<cstdio>
#include<vector>
#include<map>
using namespace std;
inline int read(){
	int x=0,f=1;
	char c=getchar();
	while(c<'0'||c>'9'){if(c=='-')f*=-1;c=getchar();}
	while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+c-'0';c=getchar();}
	return x*f;
}
map<int,int>mp;
vector<int >v[100010];

struct node{
	int t,k;
}a[100010],que[100010];
int n,head=1,tail=1,ans=0;
int main(){
//	freopen("port.in","r",stdin);
//	freopen("port.out","w",stdout);
	n=read();
	for(int i=1;i<=n;i++){
		a[i].t=read(),a[i].k=read();
		que[tail++]=a[i];
		for(int j=1;j<=a[i].k;j++){
			int x=read();mp[x]++;
			if(mp[x]==1)ans++;
			v[i].push_back(x);
		}
		while(head<=tail){
			if(a[i].t-86400>=que[head].t){
				for(int j=0;j<v[head].size();j++){
					mp[v[i][j]]--;
					if(mp[v[i][j]]==0)ans--;
				}
				head++;
			}else break;
		}
		printf("%d\n",ans);
	}
	return 0;
}
2023/9/9 11:20
加载中...