제출 #928014

#제출 시각아이디문제언어결과실행 시간메모리
928014AiperiiiBitaro’s Party (JOI18_bitaro)C++14
7 / 100
1932 ms524288 KiB
#include <bits/stdc++.h> #define int long long #define ff first #define ss second #define all(x) x.begin(),x.end() #define pb push_back using namespace std; const int N=1e5+5; vector <int> g[N]; signed main(){ int n,m,q; cin>>n>>m>>q; for(int i=0;i<m;i++){ int u,v; cin>>u>>v; g[v].pb(u); } int sq=350; vector < pair <int,int> > cct[n+1]; vector <int> d(n+1),ld(n+1); vector <int> cctv; for(int i=1;i<=n;i++){ d[i]=0; cctv.pb(i); for(auto edg : g[i]){ for(auto x : cct[edg]){ if(ld[x.ss]==i){ d[x.ss]=max(d[x.ss],x.ff+1); } else{ cctv.pb(x.ss); ld[x.ss]=i; d[x.ss]=x.ff+1; } } } for(auto x : cctv){ cct[i].pb({d[x],x}); } sort(cct[i].rbegin(),cct[i].rend()); while(cct[i].size()>sq){ cct[i].pop_back(); } cctv.clear(); } vector <int> no(n+1); vector <int> dp(n+1); while(q--){ int t,s; cin>>t>>s; vector <int> a(s); for(int i=0;i<s;i++){ cin>>a[i]; no[a[i]]=1; } if(s<sq){ int ans=-1; for(auto x : cct[t]){ if(!no[x.ss]){ ans=x.ff; break; } } cout<<ans<<"\n"; } else{ for(int i=0;i<s;i++){ dp[a[i]]=-1e9; } for(int i=1;i<=t;i++){ for(auto edg : g[i]){ dp[i]=max(dp[i],dp[edg]+1); } } cout<<max(-1ll,dp[t])<<"\n"; for(int i=1;i<=t;i++){ dp[i]=0; } } for(int i=0;i<s;i++){ no[a[i]]=0; } } } /* */

컴파일 시 표준 에러 (stderr) 메시지

bitaro.cpp: In function 'int main()':
bitaro.cpp:41:28: warning: comparison of integer expressions of different signedness: 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   41 |         while(cct[i].size()>sq){
      |               ~~~~~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...