Submission #536911

#TimeUsernameProblemLanguageResultExecution timeMemory
536911yungyaoLong Mansion (JOI17_long_mansion)C++17
10 / 100
3081 ms26556 KiB
/* weak weak we ak we akwea weak we weak weak we ak weak weak we ak we weakweak we ak wea ak we akwe wea we ak we ak we akwe wea we ak we ak we akwe wea eak weak we ak we ak we wea wea ak we ak weak we we we ak wea ak weak we we ak wea weak wea eak we we ak we ak wea wea we we weak we ak we we we we we we ak we we we we we wea weak wea wea weak weak weak wea akw weak weak */ //#define _GLIBCXX_DEBUG //is only used when couldn't find bug using namespace std; #pragma GCC optimize ("Ofast") //headers #include <vector> #include <queue> #include <algorithm> #include <cmath> #include <utility> #include <bitset> #include <set> #include <string> #include <stack> #include <iomanip> #include <map> #include <memory.h> #include <deque> #include <time.h> #include <assert.h> #include <unordered_map> #include <unordered_set> #include <sstream> //defines typedef long long LL; typedef pair<int,int> pii; typedef pair<LL,LL> pll; typedef vector<int> vi; typedef vector<LL> vl; typedef vector<vector<int>> vvi; typedef vector<vector<LL>> vvl; #define pb push_back #define F first #define S second #define mid (LB+RB)/2 #define mkp make_pair //iterators #define iter(x) x.begin(),x.end() #define aiter(a,n) a,a+n //loops #define REP(n) for (int ___=n > 0 ? n : 0;___--;) #define REP0(i,n) for (int i=0,___=n;i<___;++i) #define REP1(i,n) for (int i=1,___=n;i<=___;++i) #define MEM(e,val) memset (e,val,sizeof(e)) /* When he said Super Idol??摰寥瘝∩????急?甇????瘝∩??€?潛??105 簞C??皛湔輕皜滲?擐偌雿??乩????舐頝€?隡蝚???韏瑚?隞?賭?頧餉?憭梯揖撖寞╪?喟??抒?銝€?港??暹敺?敹?敶?撖寞?霂港?????曄?霈拇??亙??Z蕭?芸楛?╪?喲???芋?? I really felt that. every one is so dian except me still too weak ?拙? */ //IO #include <cstdio> #include <iostream> #include <fstream> #define want_to_be_more_dian ios_base::sync_with_stdio(false),cin.tie(0); //pbds /* #include <ext/pb_ds/tree_policy.hpp> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/priority_queue.hpp> using namespace __gnu_pbds; //tree <pii,null_type,less<pii>,rb_tree_tag,tree_order_statistics_node_update>; */ //constants #include <climits> const int maxn = 5e5+10,mod = 0; const long long inf = 0; const double eps = 0; //workspace int c[maxn]; int fr[maxn], fl[maxn]; vector <int> key[maxn]; int clo[maxn]; pii seg[maxn]; inline void solve(){ int n, q; cin >> n; REP1(i, n-1) cin >> c[i]; REP1(i, n){ int k; cin >> k; key[i].resize(k); for (auto &x:key[i]) cin >> x; } REP1(i, n) clo[i] = n+1; for (auto &x:key[n]) clo[x] = n; for (int i=n-1;i;--i){ fr[i] = clo[c[i]]; for (auto &x:key[i]) clo[x] = i; } REP1(i, n) clo[i] = 0; for (auto &x:key[1]) clo[x] = 1; for (int i=2;i<=n;++i){ fl[i] = clo[c[i-1]]; for (auto &x:key[i]) clo[x] = i; } fr[0] = n+1; fl[n+1] = 0; REP1(i, n){ seg[i] = mkp(i, i); while (true){ if (fr[seg[i].F-1] <= seg[i].S) --seg[i].F; else if (fl[seg[i].S+1] >= seg[i].F) ++seg[i].S; else break; } } cin >> q; REP(q){ int a, b; cin >> a >> b; if (b >= seg[a].F and b <= seg[a].S) cout << "YES\n"; else cout << "NO\n"; } } signed main(){ want_to_be_more_dian //int t,i=1; for (int ;cin;)//use in multi-testcases and end in EOF problems //int t,i=1; for (cin >> t;i<=t;++i)//use in multi-testcases problems //cout << "Case #" << i << ": ",//use in Google, FB competitions solve();//always used return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...