diff --git a/35.cpp b/35.cpp new file mode 100644 index 0000000..953cfdd --- /dev/null +++ b/35.cpp @@ -0,0 +1,54 @@ +// 120 +#include +using namespace std; +int t; +struct node +{ + int l, r, d; +} arm[200005]; +map qsum; +int n; +bool check(int now) +{ + pair pre; + for (auto k : qsum) + { + if (pre.first < now && k.first >= now) + { + return k.second % 2; + } + pre = k; + } +} +int main() +{ + scanf("%d", &t); + while (t--) + { + scanf("%d", &n); + int maxr = 0; + qsum.clear(); + for (int i = 1; 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); + } + } + if (qsum[maxr] % 2 == 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); + } + } + return 0; +} \ No newline at end of file