#include <iostream>
#include <vector>
#include <string>
#include <array>
using namespace std;
#define Int long long
vector< vector<Int> > L,R;
int main(){
Int n,m,q;
cin>>n>>m>>q;
for (Int i=0;i<n+1;i++){L.push_back({});R.push_back({});}
for (Int i=0;i<m;i++)
{
Int l,r;
cin>>l>>r;
L[l].push_back(r);
R[r].push_back(l);
}
for (Int qq=0;qq<q;qq++){
Int t,y;
vector<Int> Y;
cin>>t>>y;
for (int i=0;i<y;i++){
Int yy;
cin>>yy;
Y.push_back(yy);
}
vector<Int> best(n+1,0);
for (int l=t;l>0;l--)
for (auto r:L[l])
if (r<=t && best[r]+1>best[l])
best[l]=best[r]+1;
if (false) for (int i=1;i<=n;i++)
cout<<best[i]<<" ";
if (false) cout<<endl;
for (auto yy:Y) {best[yy]=0;}
if (false) for (int i=1;i<=n;i++)
cout<<best[i]<<" ";
if (false) cout<<endl;
Int ans=-1;
for (int i=1;i<=t;i++) if (best[i]>ans) ans=best[i];
cout<<ans<<endl;
}
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |