제출 #799997

#제출 시각아이디문제언어결과실행 시간메모리
799997SlavaKemDev급행열차 20/19 (ROI19_express)C++17
0 / 100
40 ms5588 KiB
#ifdef LOCAL #define _GLIBCXX_DEBUG #endif #include <iostream> #include <utility> #include <vector> #include <algorithm> #define _USE_MATH_DEFINES #include <cmath> #include <map> #include <set> #include <queue> #include <stack> #include <deque> #include <fstream> #include <random> #include <cassert> #include <bitset> #include <unordered_map> #include <unordered_set> #include <thread> using namespace std; using ll = long long; using ull = unsigned long long; using ld = long double; using pll = pair<ll, ll>; using vll = vector<ll>; using vpll = vector<pair<ll, ll>>; using vii = vector<int>; #define fill(a) for (ll i = 0; i < (a).size(); i++) cin >> (a)[i] #define mp make_pair #define mt make_tuple #define bs(a, b) binary_search((a).begin(), (a).end(), (b)) ld EPS = 1e-9; ld phi = (1 + sqrt(5)) / 2; ll MOD = 1e9 + 7; ll INF = 1e18; ll P = 239; ll B = 550; struct Edge { ll to, w; }; vector<vector<Edge>> g; vector<bitset<10001>> c; vector<ll> order; vector<bool> used; void dfs(ll v) { used[v] = true; for (Edge edge : g[v]) if (!used[edge.to]) dfs(edge.to); order.push_back(v); } int main() { #ifdef LOCAL freopen("inp.txt", "r", stdin); freopen("out.txt", "w", stdout); freopen("err.txt", "w", stderr); clock_t timer = clock(); #else ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.precision(64); cout << fixed; #endif ll t; cin >> t; while (t--) { ll n, m, q, p; cin >> n >> m >> q >> p; assert(n <= 5000 && m <= 5000); g.assign(n, {}); used.assign(n, false); c.assign(n, bitset<10001>()); c[0][0] = true; for (ll i = 0; i < m; i++) { ll u, v, w; cin >> u >> v >> w; u--; v--; g[u].push_back({v, w}); } dfs(0); reverse(order.begin(), order.end()); for (ll v : order) { for (Edge edge : g[v]) c[edge.to] |= c[v] << edge.w; } while (q--) { ll f, r; cin >> f >> r; f--; bool ok = false; for (ll i = r; i <= r * p / (p - 1); i++) ok |= c[f][i]; cout << ok; } cout << "\n"; } #ifdef LOCAL cout << endl << "Execution time: " << (ld)(clock() - timer) / CLOCKS_PER_SEC; #endif }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...