Submission #526858

#TimeUsernameProblemLanguageResultExecution timeMemory
526858bibabasKutije (COCI21_kutije)C++14
70 / 70
147 ms6044 KiB
//#pragma GCC optimize("Ofast") //#pragma GCC optimize("no-stack-protector") //#pragma GCC optimize("unroll-loops") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx") //#pragma GCC optimize("inline") //#pragma GCC optimize("-fgcse") //#pragma GCC optimize("-fgcse-lm") //#pragma GCC optimize("-fipa-sra") //#pragma GCC optimize("-ftree-pre") //#pragma GCC optimize("-ftree-vrp") //#pragma GCC optimize("-fpeephole2") //#pragma GCC optimize("-ffast-math") //#pragma GCC optimize("-fsched-spec") //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("-falign-jumps") //#pragma GCC optimize("-falign-loops") //#pragma GCC optimize("-falign-labels") //#pragma GCC optimize("-fdevirtualize") //#pragma GCC optimize("-fcaller-saves") //#pragma GCC optimize("-fcrossjumping") //#pragma GCC optimize("-fthread-jumps") //#pragma GCC optimize("-funroll-loops") //#pragma GCC optimize("-fwhole-program") //#pragma GCC optimize("-freorder-blocks") //#pragma GCC optimize("-fschedule-insns") //#pragma GCC optimize("inline-functions") //#pragma GCC optimize("-ftree-tail-merge") //#pragma GCC optimize("-fschedule-insns2") //#pragma GCC optimize("-fstrict-aliasing") //#pragma GCC optimize("-fstrict-overflow") //#pragma GCC optimize("-falign-functions") //#pragma GCC optimize("-fcse-skip-blocks") //#pragma GCC optimize("-fcse-follow-jumps") //#pragma GCC optimize("-fsched-llerblock") //#pragma GCC optimize("-fpartial-inlining") //#pragma GCC optimize("no-stack-protector") //#pragma GCC optimize("-freorder-functions") //#pragma GCC optimize("-findirect-inlining") //#pragma GCC optimize("-fhoist-adjacent-loads") //#pragma GCC optimize("-frerun-cse-after-loop") //#pragma GCC optimize("-inline-small-functions") //#pragma GCC optimize("-finline-small-functions") //#pragma GCC optimize("-ftree-switch-conversion") //#pragma GCC optimize("-foptimize-sibling-calls") //#pragma GCC optimize("-fexpensive-optimizations") //#pragma GCC optimize("-funsafe-loop-optimizations") //#pragma GCC optimize("inline-functions-called-once") //#pragma GCC optimize("-fdelete-null-poller-checks") #ifdef DEBUG #define _GLIBCXX_DEBUG #endif #include <bits/stdc++.h> using namespace std; #define ll long long #define ull unsigned ll #define vi vector<ll> #define vvi vector<vi> #define all(x) x.begin(), x.end() #define pb push_back #define mp make_pair #define ld long double #define pii pair<ll, ll> #define mt make_tuple #define mn(a, b) a = min(a, b) #define mx(a, b) a = max(a, b) #define base complex<ld> #define START_DEPTH 18 using namespace std; const ll inf = (ll)1e18; const ld eps = (ld)1e-12; const ll mod = (ll)1e9 + 7; const ll mod2 = (ll)1e9 + 9; const ll MAXN = (ll)2e5 + 10; const ll MAXC = (ll)1e5 + 10; const ll MAXLOG = (ll)20; const ll asci = (ll)256; const ll block = 316; const ld PI = acos(-1LL); const ll INF = 2e9; const ld e = 2.7182818284; //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //using namespace __gnu_pbds; // //typedef tree< //ll, //null_type, //less<ll>, //rb_tree_tag, //tree_order_statistics_node_update> //ordered_set; // === Debug macro starts here === template<typename A, typename B> string to_string(pair<A, B> p); template<typename A, typename B, typename C> string to_string(tuple<A, B, C> p); template<typename A, typename B, typename C, typename D> string to_string(tuple<A, B, C, D> p); string to_string(const string &s) { return '"' + s + '"'; } string to_string(const char *s) { return to_string((string) s); } string to_string(vector<bool> v) { bool first = true; string res = "{"; for (ll i = 0; i < static_cast<ll>(v.size()); i++) { if (!first) { res += ", "; } first = false; res += to_string(v[i]); } res += "}"; return res; } template<typename A> string to_string(A v) { bool first = true; string res = "{"; for (const auto &x: v) { if (!first) { res += ", "; } first = false; res += to_string(x); } res += "}"; return res; } template<typename A, typename B> string to_string(pair<A, B> p) { return "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; } template<typename A, typename B, typename C> string to_string(tuple<A, B, C> p) { return "(" + to_string(get<0>(p)) + ", " + to_string(get<1>(p)) + ", " + to_string(get<2>(p)) + ")"; } string to_string(char c) { return string() + c; } template<typename A, typename B, typename C, typename D> string to_string(tuple<A, B, C, D> p) { return "(" + to_string(get<0>(p)) + ", " + to_string(get<1>(p)) + ", " + to_string(get<2>(p)) + ", " + to_string(get<3>(p)) + ")"; } template<typename A, std::size_t N> string to_string(A (&v)[N]) { bool first = true; string res = "{"; for (ll i = 0; i < N; i++) { if (!first) { res += ", "; } first = false; res += to_string(v[i]); } res += "}"; return res; } void debug_out() { cerr << "\n"; } template<typename Head, typename... Tail> void debug_out(Head &H, Tail... T) { cerr << " " << to_string(H); debug_out(T...); } #ifdef DEBUG #define dbg(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__); #else #define dbg(...); #endif // === Debug macro ends here === pii operator +(const pii &a, const pii &b) { return {a.first + b.first, a.second + b.second}; } template <class T> istream& operator >>(istream &in, vector<T> &arr){ for (T &cnt : arr) { in >> cnt; } return in; }; void solve() { int n, m, q; cin >> n >> m >> q; vvi comps(n); vi id(n); for (int i = 0; i < n; ++i) comps[i] = {i}, id[i] = i; for (int j = 0; j < m; ++j) { vi p(n); cin >> p; dbg(comps); dbg(id); dbg(p); for (int i = 0; i < n; ++i) { if (id[p[i] - 1] != id[i]) { int id_n = id[p[i] - 1]; for (int k : comps[id_n]) { comps[id[i]].push_back(k); id[k] = id[i]; } comps[id_n].clear(); } dbg(comps); dbg(id); } } dbg(comps); dbg(id); while (q--) { int a, b; cin >> a >> b; --a, --b; if (id[a] == id[b]) { cout << "DA\n"; } else cout << "NE\n"; } } signed main() { srand(time(0LL)); #ifdef DEBUG freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #else ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); #endif cout.precision(30); //#define TEST #ifdef TEST ll t; cin >> t; while (t--) #endif solve(); return 0LL; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...