# 代码
```cpp
#include<bits/stdc++.h>
using namespace std;
long long n,m[100003],k[100003]={1},ans=0,o[100003]={0},v=1,z[300003]={0};
int main()
{
scanf("%lld",&n);
for(int i=1;i<=n;i++)
{
scanf("%lld%lld",&m[i],&k[i]);
k[i]+=k[i-1];
for(int j=k[i-1]+1;j<=k[i];j++)
{
long long x;
scanf("%lld",&x);
if(o[x]==0)
{
ans++;
}
z[j]=x;
o[x]++;
}
while(m[i]-m[v]>=86400)
{
for(int j=k[v-1]+1;j<=k[v];j++)
{
o[z[j]]--;
if(o[z[j]]==0)
{
ans--;
}
}
v++;
}
printf("%lld\n",ans);
}
return 0;
}
```
自己看看吧
by oier04 @ 2023-08-27 16:48:47
@[Brilliant11001](/user/602372) 之前做的了,想不起思路了。
by oier04 @ 2023-08-27 16:55:02
@[oier04](/user/747109)
谢谢好兄弟,有思路了
by Brilliant11001 @ 2023-08-27 17:10:02
不用谢
by oier04 @ 2023-08-27 17:38:45
其实不用太多循环,容易TLE。这是代码,自己看看吧。
```
#include <iostream>
using namespace std;
struct node
{
int from;
int timee;
}p[300006];
int f[300006];
int main()
{
long long n,t,k,front=0,rear=0,ans=0;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>t>>k;
for(int j=1;j<=k;j++)
{
cin>>p[rear].from;
p[rear].timee=t;
f[p[rear].from]++;
if(f[p[rear].from]==1)
{
ans++;
}
rear++;
}
while(p[rear-1].timee-p[front].timee>=86400)
{
f[p[front].from]--;
if(f[p[front].from]==0)
{
ans--;
}
front++;
}
cout<<ans<<endl;
}
return 0;
}
```
by xzwdqjdx @ 2023-10-06 11:34:13