intmain(){ int q; cin >> q; while (q--) { int a, b, c, r; cin >> a >> b >> c >> r; if (a > b) swap(a, b); int ans = 0; if (c - r > a) ans += min(b, c - r) - a; if (c + r < b) ans += b - max(a, c + r); cout << ans << endl; } return0; }
intmain(){ int q; cin >> q; while (q--) { int n, ti, p[2], cnt[2] = {}; cin >> n >> ti >> p[0] >> p[1]; vector<pii> a(n); for (int i = 0; i < n; ++i) { auto&[t, v] = a[i]; cin >> v; ++cnt[v]; v = p[v]; } for (int i = 0; i < n; ++i) { auto&[t, v] = a[i]; cin >> t; } a.emplace_back(ti + 1, 0); a.emplace_back(0, 0); sort(a.begin(), a.end(), [](auto a, auto b) { return a.first < b.first; });
int ans = 0; ll cost = 0; for (int i = 0; i <= n; ++i) { auto[t, v] = a[i]; cost += v; t = a[i + 1].first - 1; if (v == p[0]) --cnt[0]; if (v == p[1]) --cnt[1]; if (cost > t) continue; int tt = t - cost; int easy = min(tt / p[0], cnt[0]); tt -= easy * p[0]; int hard = min(tt / p[1], cnt[1]); ans = max(ans, easy + hard + i); }
intmain(){ int q; cin >> q; while (q--) { int n; cin >> n; for (int i = 0; i < n; ++i) st[i].clear(); mp.clear(); for (int i = 1; i <= n - 2; ++i) { auto&[a] = cc[i]; cin >> a[0] >> a[1] >> a[2]; sort(a, a + 3); for (int j = 0; j < 3; ++j) st[a[j]].emplace(i); ++mp[{a[0], a[1]}]; ++mp[{a[0], a[2]}]; ++mp[{a[1], a[2]}]; } vector<vi> g(n + 1); for (auto &i : mp) { if (i.second & 1) { const pii &t = i.first; g[t.first].emplace_back(t.second); g[t.second].emplace_back(t.first); } } vector<int> vis(n + 1); function<void(int, int)> dfs = [&](int s, int fa) { cout << s << ' '; vis[s] = 1; for (int u : g[s]) { if (!vis[u]) { dfs(u, s); } } }; dfs(1, 0); cout << endl;
queue<int> Q; for (int i = 1; i <= n; ++i) { if (st[i].size() == 1) { Q.emplace(i); } } while (!Q.empty()) { int u = Q.front(); Q.pop(); if (st[u].empty())break; int tt = *st[u].begin(); cout << tt << ' '; auto&[a]= cc[tt]; for (int i : a) { st[i].erase(tt); if (st[i].size() == 1) Q.emplace(i); } } cout << endl; } return0; }