Submission #1151085

#TimeUsernameProblemLanguageResultExecution timeMemory
1151085adkjtBitaro’s Party (JOI18_bitaro)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; vector<int> g[111111],a[111111]; int mx[111111],dis[111111]; vector<pair<int,int>> now[111111]; int close[111111]; int main() { int n,m,q;cin>>n>>m>>q; for(int i=1;i<=m;i++) { int u,v;cin>>u>>v; g[v].push_back(u); a[u].push_back(v); } memset(mx,-1,sizeof mx); for(int i=1;i<=n;i++) { now[i].push_back({0,i}); vector<int> use; for(auto x:g[i]) { for(auto xx: now[x]) { if(mx[xx.second]==-1) { mx[xx.second]=xx.first+1; use.push_back(xx.second); } else mx[xx.second]=max(mx[xx.second],xx.first+1); } } for(auto x:use) { now[i].push_back({mx[x],x}); mx[x]=-1; } sort(now[i].begin(),now[i].end()); reverse(now[i].begin(),now[i].end()); while(now[i].size()>sqrt(n)) now[i].pop_back(); } while(q--) { int T,Y;cin>>T>>Y; for(int i=1;i<=n;i++) close[i]=0; for(int i=1;i<=Y;i++) { int x;cin>>x; close[x]=1; } int sq=sqrt(n); if(Y>sq) { int ans=-1; for(int i=1;i<=n;i++) dis[i]=INT_MIN; dis[T]=0; for(int i=T;i>0;i--) { for(auto x:a[i]) { dis[i]=max(dis[i],dis[x]+1); } if(close[i]) continue; ans=max(ans,dis[i]); } cout<<ans<<'\n'; } else { int ch=0; for(auto x:now[T]) { if(!close[x.second]) { cout<<x.first<<'\n'; ch=1; break; } } if(!ch) cout<<-1<<'\n'; } } }

Compilation message (stderr)

bitaro.cpp:7:17: error: 'int close [111111]' redeclared as different kind of entity
    7 | int close[111111];
      |                 ^
In file included from /usr/include/x86_64-linux-gnu/bits/sigstksz.h:24,
                 from /usr/include/signal.h:328,
                 from /usr/include/c++/11/csignal:42,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:43,
                 from bitaro.cpp:1:
/usr/include/unistd.h:358:12: note: previous declaration 'int close(int)'
  358 | extern int close (int __fd);
      |            ^~~~~
bitaro.cpp: In function 'int main()':
bitaro.cpp:47:38: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   47 |         for(int i=1;i<=n;i++) close[i]=0;
      |                                      ^
bitaro.cpp:47:39: error: assignment of read-only location '*(close + ((sizetype)i))'
   47 |         for(int i=1;i<=n;i++) close[i]=0;
      |                               ~~~~~~~~^~
bitaro.cpp:51:20: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   51 |             close[x]=1;
      |                    ^
bitaro.cpp:51:21: error: assignment of read-only location '*(close + ((sizetype)x))'
   51 |             close[x]=1;
      |             ~~~~~~~~^~
bitaro.cpp:65:27: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   65 |                 if(close[i]) continue;
      |                           ^
bitaro.cpp:76:35: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   76 |                 if(!close[x.second])
      |                                   ^