#include<bits/stdc++.h>
using namespace std;
int nat[100001],per[100001];
struct b{
int time,sum;
};b boat[100005];
int main(){
int n,j=1,ans=0;cin>>n;
memset(per,0,sizeof(per));
int head=1,tail=n;
for(int i=1;i<=n;i++){cout<<ans<<'\n';
int j1=j;
cin>>boat[i].time>>boat[i].sum;
for(j=j1;j<=j1+boat[i].sum;j++){//cout<<ans<<'\n';
cin>>nat[j];per[nat[j]]++;/*cout<<per[nat[j]]<<' ';*/if(per[nat[j]]==1){
ans++;}}boat[i].sum=j;/*cout<<ans<<'\n'*/
while(boat[i].time-boat[head].time>=86000){
for(int k=boat[head-1].sum+1;k<=boat[head].sum;k++){
per[nat[k]]--;if(per[nat[k]]==0)ans--;
}head++;}
}
return 0;
}
总是在第一次和最后一次输出时跳过...