Submission #260487

#TimeUsernameProblemLanguageResultExecution timeMemory
260487fadi57Long Mansion (JOI17_long_mansion)C++14
10 / 100
3096 ms21028 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const int mx=500020; ll c[mx]; ll b[mx]; vector<ll>keys[mx]; ll mxright[mx]; ll mxleft[mx]; int main() { ll n,m;cin>>n; for(ll i=1;i<n;i++){ cin>>c[i]; } for(ll i=1;i<=n;i++){ cin>>b[i]; for(ll j=0;j<b[i];j++){ ll x; cin>>x; keys[i].push_back(x); } }//cout<<keys[4][0]<<endl; for(ll i=n;i>=1;i--){ map<ll,ll>ok; for(ll j=0;j<b[i];j++){ ok[keys[i][j]]=1;//cout<<keys[i][j]<<"ji"<<endl; }ll myr=i; ll myl=i; while(1){ ll xx=0;ll xo=0; if(myr<n&&ok[c[myr]]){ xx=1; myr++; //here we add the new keys for(int j=0;j<b[myr];j++){ ok[keys[myr][j]]=1; } } if(myl>1&&ok[c[myl-1]]){ xo=1; myl--; for(int j=0;j<b[myl];j++){ ok[keys[myl][j]]=1; } } if(xo||xx){ }else{ break; } } mxleft[i]=myl;mxright[i]=myr; // cout<<myl<<" "<<myr<<endl; //return 0; }//cout<<mxright[1]; ll q;cin>>q; for(ll i=0;i<q;i++){ ll x,y;cin>>x>>y; //cout<<mxleft[x]<<" "<<mxright[x]; if(mxleft[x]<=y&&y<=mxright[x]){ cout<<"YES"; }else{cout<<"NO";} cout<<endl; } }

Compilation message (stderr)

long_mansion.cpp: In function 'int main()':
long_mansion.cpp:17:8: warning: unused variable 'm' [-Wunused-variable]
   ll n,m;cin>>n;
        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...