Submission #724335

#TimeUsernameProblemLanguageResultExecution timeMemory
724335MohamedAliSaidaneGame (APIO22_game)C++17
30 / 100
557 ms5696 KiB
#include<bits/stdc++.h> #include "game.h" #include<ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; typedef long long ll; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> indexed_set; typedef vector<int> vi; typedef vector<ll> vll; typedef pair<int,int> pii; typedef vector<pii> vpi; #define ff first #define ss second #define pb push_back #define all(x) (x).begin(),(x).end() const ll MOD = 1e9 + 7, INF = 1e18; ll mod(ll x, ll m = MOD) {return (x + m) % m;} const int nax = 3e4 ; const int kax = 1000; int n, k; bitset<nax> g[kax]; vi rev_adj[nax]; void init(int N, int K) { n = N, k = K; for(int i = 0; i < k; i++) { for(int j =0 ; j <= i; j++) g[i][j] = 1; } } int add_teleporter(int u, int v) { if(u < k && v <= u) return 1; if(v == u) return 0; for(int i = 0; i < k; i++) { if(g[i][v]) { queue<int> q; q.push(u); g[i][u] = 1; while(!q.empty()) { int node = q.front(); q.pop(); if(node < k && node >= i) return 1; for(auto e: rev_adj[node]) { if(g[i][e]) continue; g[i][e] = 1; q.push(e); } } } } rev_adj[v].pb(u); return 0; } /* int32_t main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m, k; cin >> n >> m >> k; init(n, k); while(m--) { int u, v; cin >> u >> v; cout << add_teleporter(u, v) << endl; } } */
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...