Submission #844827

#TimeUsernameProblemLanguageResultExecution timeMemory
844827guagua0407Bitaro’s Party (JOI18_bitaro)C++17
0 / 100
11 ms9464 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define f first #define s second #define all(x) x.begin(),x.end() const int K=60; const int mxn=1e5+5; vector<int> adj[mxn]; set<pair<int,int> > S[mxn]; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,m,q; cin>>n>>m>>q; for(int i=0;i<m;i++){ int a,b; cin>>a>>b; a--; b--; adj[b].push_back(a); } for(int i=0;i<n;i++){ S[i].insert({0,i}); for(auto v:adj[i]){ for(auto u:S[v]){ S[i].insert({u.f+1,u.s}); if(S[i].size()>K){ S[i].erase(S[i].begin()); } } } } for(int i=0;i<q;i++){ int v; cin>>v; v--; int t; cin>>t; vector<int> vec(t); for(int j=0;j<t;j++){ cin>>vec[j]; vec[j]--; } //sort(all(vec)); if(t>=S[v].size()){ vector<int> d(n,-1); d[v]=0; for(int j=v;j>=0;j--){ for(auto u:adj[j]){ d[u]=max(d[u],d[j]+1); } } int ans=-1; for(int j=0;j<=v;j++){ if(upper_bound(all(vec),j)-lower_bound(all(vec),j)==0){ ans=max(ans,d[j]); } } cout<<ans<<'\n'; } else{ for(auto it=S[v].rbegin();it!=S[v].rend();it--){ auto u=*it; if(upper_bound(all(vec),u.s)-lower_bound(all(vec),u.s)==0){ cout<<u.f<<'\n'; break; } } } } }

Compilation message (stderr)

bitaro.cpp: In function 'int main()':
bitaro.cpp:48:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::set<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |         if(t>=S[v].size()){
      |            ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...