From b6910a019223e32dd83459d7288438056d4f6bcd Mon Sep 17 00:00:00 2001 From: hanyixuanten <105723997+hanyixuanten@users.noreply.github.com> Date: Mon, 17 Aug 2026 17:52:33 +0800 Subject: [PATCH] modified: 35.cpp --- 35.cpp | 73 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/35.cpp b/35.cpp index 953cfdd..e812ac8 100644 --- a/35.cpp +++ b/35.cpp @@ -4,21 +4,35 @@ using namespace std; int t; struct node { - int l, r, d; -} arm[200005]; -map qsum; + long long l, r, d; +} a[200005]; int n; -bool check(int now) +int pre(long long x) { - pair pre; - for (auto k : qsum) + int res = 0; + for (int i = 0; i < n; ++i) { - if (pre.first < now && k.first >= now) - { - return k.second % 2; - } - pre = k; + if (x < a[i].l) + continue; + long long end = min(x, a[i].r); + if (end < a[i].l) + continue; + long long cnt = (end - a[i].l) / a[i].d + 1; + res ^= (cnt & 1); } + return res; +} +long long at(long long p) +{ + long long cnt = 0; + for (int i = 0; i < n; ++i) + { + if (p < a[i].l || p > a[i].r) + continue; + if ((p - a[i].l) % a[i].d == 0) + ++cnt; + } + return cnt; } int main() { @@ -26,29 +40,28 @@ int main() while (t--) { scanf("%d", &n); - int maxr = 0; - qsum.clear(); - for (int i = 1; i <= n; ++i) + long long maxE = 0; + + for (int i = 0; i < n; ++i) { - scanf("%d%d%d", &arm[i].l, &arm[i].r, &arm[i].d); - for (int j = arm[i].l; j <= arm[i].r; j += arm[i].d) - { - qsum[j] += (j - arm[i].l + arm[i].d) / arm[i].d; - maxr = max(maxr, j); - } + scanf("%lld%lld%lld", &a[i].l, &a[i].r, &a[i].d); + maxE = max(maxE, a[i].r); } - if (qsum[maxr] % 2 == 0) + if (pre(maxE) == 0) + { puts("There's no weakness."); - else - { - int l = 0, r = maxr, mid; - while (l < r) - if (check(mid)) - r = mid; - else - l = mid + 1; - printf("%d\n", mid); + continue; } + long long l = 0, r = maxE; + while (l < r) + { + long long mid = (l + r) >> 1; + if (pre(mid) == 1) + r = mid; + else + l = mid + 1; + } + printf("%lld %lld\n", l, at(l)); } return 0; } \ No newline at end of file