Submission #71482768
Source Code Expand
/*
JAI JAGANNATH!
*/
//@Author : zanj0
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
template <class T>
using ordered_set = __gnu_pbds::tree<T, __gnu_pbds::null_type, less<T>, __gnu_pbds::rb_tree_tag, __gnu_pbds::tree_order_statistics_node_update>;
// #define LOCAL // ← enable locally via -DLOCAL; keep commented for OJ
#define ff first
#define ss second
#define pb push_back
#define MOD 1000000007
#define inf 1000000000000000000LL
#define ps(x, y) fixed << setprecision(y) << x
#define w(x) \
int x; \
cin >> x; \
while (x--)
#define endl "\n"
#define timetaken cerr << "Time : " << 1000 * (long double)clock() / (long double)CLOCKS_PER_SEC << "ms\n"
typedef long long int lli;
#ifdef LOCAL
#define dbg(x) cerr << "[DBG] " << #x << " = " << (x) << '\n'
template <class A, class B>
ostream &operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ',' << p.second << ')'; }
template <class T>
ostream &operator<<(ostream &os, const vector<T> &v)
{
os << '[';
for (size_t i = 0; i < v.size(); ++i)
{
if (i)
os << ',';
os << v[i];
}
return os << ']';
}
template <class K, class V>
ostream &operator<<(ostream &os, const map<K, V> &mp)
{
os << '{';
bool first = true;
for (const auto &kv : mp)
{
if (!first)
os << ',';
first = false;
os << kv.first << ':' << kv.second;
}
return os << '}';
}
template <class K, class V>
ostream &operator<<(ostream &os, const unordered_map<K, V> &mp)
{
os << '{';
bool first = true;
for (const auto &kv : mp)
{
if (!first)
os << ',';
first = false;
os << kv.first << ':' << kv.second;
}
return os << '}';
}
#else
#define dbg(x) ((void)0)
#endif
void zanj0()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
#ifdef LOCAL
freopen("input.txt", "r", stdin);
#endif
}
/*
────────────────────────────────────────────────────────────────────────
Problem Statement:
Observations:
Claims:
────────────────────────────────────────────────────────────────────────
*/
void Dfs(lli node, lli par, set<lli> &visited, vector<vector<lli>>& graph)
{
if (visited.count(node))
return;
visited.insert(node);
for (auto &it : graph[node])
{
if (it == par)
{
continue;
}
Dfs(it, node, visited, graph);
}
}
void Solve()
{
lli n;
cin >> n;
lli m;
cin >> m;
vector<vector<lli>> graph(n + 1);
for (lli i = 1, u, v; i <= m; i++)
{
cin >> u >> v;
graph[v].pb(u);
}
set<lli> visited;
lli q;
cin >> q;
while (q--)
{
lli type, node;
cin >> type >> node;
if (type == 1)
{
Dfs(node, 0, visited, graph);
}
else
{
cout << (visited.count(node) ? "Yes" : "No") << endl;
}
}
}
int32_t main()
{
zanj0();
Solve();
timetaken;
return 0;
}
/*
GOLDEN RULES
• Solutions are simple.
• Proofs are simple.
• Implementations are simple.
*/
Submission Info
| Submission Time |
|
| Task |
D - Reachability Query 2 |
| User |
zanj0 |
| Language |
C++23 (GCC 15.2.0) |
| Score |
425 |
| Code Size |
3708 Byte |
| Status |
AC |
| Exec Time |
284 ms |
| Memory |
57208 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
425 / 425 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
sample_01.txt |
| All |
min.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, sample_01.txt |
| Case Name |
Status |
Exec Time |
Memory |
| min.txt |
AC |
1 ms |
3820 KiB |
| random_01.txt |
AC |
143 ms |
20424 KiB |
| random_02.txt |
AC |
149 ms |
20780 KiB |
| random_03.txt |
AC |
132 ms |
12672 KiB |
| random_04.txt |
AC |
183 ms |
15412 KiB |
| random_05.txt |
AC |
35 ms |
4224 KiB |
| random_06.txt |
AC |
29 ms |
3936 KiB |
| random_07.txt |
AC |
74 ms |
6408 KiB |
| random_08.txt |
AC |
198 ms |
22076 KiB |
| random_09.txt |
AC |
42 ms |
5052 KiB |
| random_10.txt |
AC |
46 ms |
5368 KiB |
| random_11.txt |
AC |
155 ms |
12732 KiB |
| random_12.txt |
AC |
235 ms |
25408 KiB |
| random_13.txt |
AC |
42 ms |
5680 KiB |
| random_14.txt |
AC |
35 ms |
5048 KiB |
| random_15.txt |
AC |
159 ms |
16564 KiB |
| random_16.txt |
AC |
197 ms |
18384 KiB |
| random_17.txt |
AC |
211 ms |
26852 KiB |
| random_18.txt |
AC |
76 ms |
19956 KiB |
| random_19.txt |
AC |
29 ms |
3840 KiB |
| random_20.txt |
AC |
41 ms |
4916 KiB |
| random_21.txt |
AC |
248 ms |
29116 KiB |
| random_22.txt |
AC |
97 ms |
21424 KiB |
| random_23.txt |
AC |
231 ms |
28860 KiB |
| random_24.txt |
AC |
79 ms |
20156 KiB |
| random_25.txt |
AC |
279 ms |
57208 KiB |
| random_26.txt |
AC |
284 ms |
53752 KiB |
| random_27.txt |
AC |
156 ms |
26872 KiB |
| random_28.txt |
AC |
212 ms |
26796 KiB |
| sample_01.txt |
AC |
1 ms |
3808 KiB |