Submission #1021738

#TimeUsernameProblemLanguageResultExecution timeMemory
1021738modwweBitaro’s Party (JOI18_bitaro)C++17
100 / 100
958 ms170536 KiB
//https://www.instagram.com/_modwwe/ #pragma GCC optimize("Ofast,unroll-loops") //#pragma GCC target("avx2,bmi,bmi2") #include<bits/stdc++.h> //#define int long long //#define ll long long #define down cout<<'\n'; #define debug cout<<" cucuucucuuu",down #define NHP ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0); #define modwwe int t;cin>>t; while(t--) #define bit(i,j) (i>>j&1) #define sobit(a) __builtin_popcountll(a) #define task "test" #define fin(x) freopen(x".inp","r",stdin) #define fou(x) freopen(x".ans ","w",stdout) #define pb push_back #define checktime cerr << (double)clock() / CLOCKS_PER_SEC * 1000 << " ms"; using namespace std; void phongbeo(); const int inf=1e18; const int mod2=1e9+7; const int mod1=998244353; struct icd { int a,b; }; struct ib { int a; int b; }; struct ic { int a,b,c; }; struct id { int a,b,c,d; }; struct ie { int a,b,c, d,e,f; }; int n,m,s1,s2,s4,s3,sf,k,r,mid,s5,s6,mx,s7,s8,s9,mx2,res,dem2=0,dem=0,l; int i,s10,s12; int el=29; main() { #ifndef ONLINE_JUDGE /// fin(task),fou(task); #endif NHP /// cin>>s1; // modwwe phongbeo(); } vector<int> v[100007]; ib a[100007][206]; int sz[100007]; int b[100007]; vector<ib> v2; int dp[100007]; bool cmp(ib a,ib b) { return a.a>b.a; } void reset() { dem++; } void ier(int x) { b[x]=dem; } bool check(int x) { return b[x]==dem; } void phongbeo() { cin>>n>>m>>k; s2=200; for(int i=1; i<=n; i++) a[i][1]= {-1,i},sz[i]=1; for(int i=1; i<=m; i++) cin>>l>>r,v[l].pb(r); for(int i=1; i<=n; i++) { for(int j=1; j<=sz[i]; j++) a[i][j].a++; for(auto x:v[i]) { v2.clear(); for(int j=1; j<=sz[i]; j++) v2.pb(a[i][j]); for(int j=1; j<=sz[x]; j++) v2.pb(a[x][j]); sort(v2.begin(),v2.end(),cmp); sz[x]=0; reset(); for(auto f:v2) { if(check(f.b))continue; sz[x]++; a[x][sz[x]]=f; ier(f.b); if(sz[x]==s2) break; } } } while(k--) { cin>>l>>m; reset(); for(int i=1;i<=m;i++) cin>>r,ier(r); if(m<s2) { s3=-1; for(int i=1;i<=sz[l];i++){ if(check(a[l][i].b)) continue; s3=max(s3,a[l][i].a); } cout<<s3; } else { for(int i=1;i<=n;i++) if(check(i)) dp[i]=-1; else dp[i]=0; for(int i=1;i<=n;i++) { if(dp[i]==-1) continue; for(auto x:v[i]) dp[x]=max(dp[x],dp[i]+1); } cout<<dp[l]; } down } }

Compilation message (stderr)

bitaro.cpp:20:15: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+18' to '2147483647' [-Woverflow]
   20 | const int inf=1e18;
      |               ^~~~
bitaro.cpp:48:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   48 | main()
      | ^~~~
bitaro.cpp: In function 'void phongbeo()':
bitaro.cpp:115:8: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
  115 |        for(int i=1;i<=m;i++)
      |        ^~~
bitaro.cpp:117:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  117 |         if(m<s2)
      |         ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...