#ifndef INCLUDED_MAIN #define INCLUDED_MAIN #include __FILE__ int main(){ ll n; cin>>n; vl a(n); rep(i,n) cin>>a[i]; vector lef(n,-1),rig(n,-1); vector dep(n,-1); dep[0]=0; vector mam(n,-1); srep(i,1,n-1) { ll cing=0; while(true) { if(a[i] lefud(n,false),rigud(n,false); queue que; vector childs(n,-1); rep(i,n) { if(rig[i]==-1) rigud[i]=true; if(lef[i]==-1) lefud[i]=true; } rep(i,n) { if(lefud[i]&&rigud[i]) que.push(i); childs[i]=0; } //vout(mam); cout< using namespace std; #define rep(i,n) for(ll i=0;i vector spf; vector freq; void pfdiv(ll x) { while(x!=1) { freq[spf[x]]++; ll p=spf[x]; while(x%p==0) { x/=p; } } } void PrimeFact(ll N) { // spfをセット, globalなvectorが必要; spf.resize(N+1); for (ll i=0; i<=N; i++) spf[i] = i; for (ll i=2; i*i<=N; i++) { if (spf[i]==i) { for (ll j=i*i ; j<=N ; j+=i) { if (spf[j]==j) { spf[j]=i; } } } } } vector Erasieve(ll n) { vector is_prime(n+1, true); is_prime[0] = is_prime[1] = false; for (int i=2;i*i<=n;++i) { if (is_prime[i]) { for (int j=i*i;j<=n;j+=i) is_prime[j] = false; } } vector primes; srep(i,2,n) { if (is_prime[i]) primes.push_back(i); } return primes; } void no() { cout<<"No"<& a) { ll ans=0; for(auto i:a) ans+=i; return ans; } #endif