diff --git a/LibreOJ/2606/2606.cpp b/LibreOJ/2606/2606.cpp new file mode 100644 index 00000000..35cd0a9a --- /dev/null +++ b/LibreOJ/2606/2606.cpp @@ -0,0 +1,93 @@ +#include + +using std::cin; +using std::cout; +using std::endl; + +int n, m, d, s, t, a[1000005]; + +// Segment Tree +void pushup(int); +void pushdown(int); +void build(int, int, int); +void modify(int, int, int, int); +int query(int, int, int); + +int main() { + cin >> n >> m; + for (int i = 1; i <= n; i++) { + cin >> a[i]; + } + build(1, 1, n); + for (int i = 1; i <= m; i++) { + cin >> d >> s >> t; + if (query(1, s, t) < d) { + cout << -1 << endl + << i << endl; + exit(0); + } else { + modify(1, s, t, -d); + } + } + cout << 0 << endl; + return 0; +} + +// === Segment Tree === + +struct node { + int l, r, m, d; + + node() + : l(0), r(0), m(std::numeric_limits::max()), d(0) {} + node(int _l, int _r) + : l(_l), r(_r), m(std::numeric_limits::max()), d(0) {} +} tr[1000005 << 1]; + +void pushup(int u) { + tr[u].m = std::min(tr[u << 1].m, tr[u << 1 | 1].m); +} + +void pushdown(int u) { + auto &root = tr[u], &left = tr[u << 1], &right = tr[u << 1 | 1]; + left.m += root.d; + left.d += root.d; + right.m += root.d; + right.d += root.d; + root.d = 0; +} + +void build(int u, int l, int r) { + tr[u] = node(l, r); + if (l == r) { + tr[u].m = a[l]; + return; + } + int mid = l + r >> 1; + build(u << 1, l, mid); + build(u << 1 | 1, mid + 1, r); + pushup(u); +} + +void modify(int u, int l, int r, int k) { + if (l <= tr[u].l && tr[u].r <= r) { + tr[u].m += k; + tr[u].d += k; + return; + } + int mid = tr[u].l + tr[u].r >> 1; + pushdown(u); + if (l <= mid) modify(u << 1, l, r, k); + if (r > mid) modify(u << 1 | 1, l, r, k); + pushup(u); +} + +int query(int u, int l, int r) { + if (l <= tr[u].l && tr[u].r <= r) return tr[u].m; + int mid = tr[u].l + tr[u].r >> 1; + int min = std::numeric_limits::max(); + pushdown(u); + if (l <= mid) min = std::min(min, query(u << 1, l, r)); + if (r > mid) min = std::min(min, query(u << 1 | 1, l, r)); + return min; +} diff --git a/LibreOJ/2606/data/classroom1.ans b/LibreOJ/2606/data/classroom1.ans new file mode 100644 index 00000000..e8187034 --- /dev/null +++ b/LibreOJ/2606/data/classroom1.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c70a9738d21cfb186a6e1569eb8093235038d0bf62a81e5b533539745a63728 +size 5 diff --git a/LibreOJ/2606/data/classroom1.in b/LibreOJ/2606/data/classroom1.in new file mode 100644 index 00000000..eb0a1f7c --- /dev/null +++ b/LibreOJ/2606/data/classroom1.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e517fdc3d616c546d9f2922d8947fe286af63f62a0cdb82ac701bc0fd0774001 +size 222 diff --git a/LibreOJ/2606/data/classroom10.ans b/LibreOJ/2606/data/classroom10.ans new file mode 100644 index 00000000..c47816a0 --- /dev/null +++ b/LibreOJ/2606/data/classroom10.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c641ff5eb5bf4b3bbbc2179d3077b6b2e7b4a5b4d4df69a9e9d5f7b2cf184d2 +size 9 diff --git a/LibreOJ/2606/data/classroom10.in b/LibreOJ/2606/data/classroom10.in new file mode 100644 index 00000000..4c31ae6b --- /dev/null +++ b/LibreOJ/2606/data/classroom10.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77229bf57b3d6a123e45b04b84f2cb49e233afbac1bdab79fa4433e315df0b3e +size 1916965 diff --git a/LibreOJ/2606/data/classroom11.ans b/LibreOJ/2606/data/classroom11.ans new file mode 100644 index 00000000..3b1fa7a6 --- /dev/null +++ b/LibreOJ/2606/data/classroom11.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a71f5e0399e456a208ebed2c919f7e26632981825bbfdd664df475642f90379 +size 9 diff --git a/LibreOJ/2606/data/classroom11.in b/LibreOJ/2606/data/classroom11.in new file mode 100644 index 00000000..9925a585 --- /dev/null +++ b/LibreOJ/2606/data/classroom11.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1948fdb516df96064df2d47dd531c20775587690c18aa964592eac951a338a35 +size 2400375 diff --git a/LibreOJ/2606/data/classroom12.ans b/LibreOJ/2606/data/classroom12.ans new file mode 100644 index 00000000..a4e3a843 --- /dev/null +++ b/LibreOJ/2606/data/classroom12.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:04dae4fae32dcb8066dda17b05a5bb6326bbafa72c71174046b238f2a9c38a1c +size 9 diff --git a/LibreOJ/2606/data/classroom12.in b/LibreOJ/2606/data/classroom12.in new file mode 100644 index 00000000..f3d395d5 --- /dev/null +++ b/LibreOJ/2606/data/classroom12.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0fdf8c2bb1bae607a20d340c8d842f0d690c9d4072ba53a1c2340b44001644ae +size 2401077 diff --git a/LibreOJ/2606/data/classroom13.ans b/LibreOJ/2606/data/classroom13.ans new file mode 100644 index 00000000..8e6ad8ba --- /dev/null +++ b/LibreOJ/2606/data/classroom13.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cf5b25e972a0609364f755853541705727bf2d13d01eae9cb4fe993c334b0ca +size 9 diff --git a/LibreOJ/2606/data/classroom13.in b/LibreOJ/2606/data/classroom13.in new file mode 100644 index 00000000..d2799779 --- /dev/null +++ b/LibreOJ/2606/data/classroom13.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9edd701382c5498cad033c80ad3a916eb9b6f12dc78d2b5cd8859d194e7e3797 +size 2400217 diff --git a/LibreOJ/2606/data/classroom14.ans b/LibreOJ/2606/data/classroom14.ans new file mode 100644 index 00000000..8544595c --- /dev/null +++ b/LibreOJ/2606/data/classroom14.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5616b93cb7d41d19243273aee3061c2bd524c2d802028a9e0570511e2e5e06d6 +size 9 diff --git a/LibreOJ/2606/data/classroom14.in b/LibreOJ/2606/data/classroom14.in new file mode 100644 index 00000000..b952b9c2 --- /dev/null +++ b/LibreOJ/2606/data/classroom14.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:148ee0be8ae27e759da5957af4afc04da0861819828eb7a425623ef37bc16503 +size 2400454 diff --git a/LibreOJ/2606/data/classroom15.ans b/LibreOJ/2606/data/classroom15.ans new file mode 100644 index 00000000..4fdde147 --- /dev/null +++ b/LibreOJ/2606/data/classroom15.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7ef7ec924dca8baead8d2f8e78c27dfd768ff5868caf128be8c11d7de9bf5cd +size 9 diff --git a/LibreOJ/2606/data/classroom15.in b/LibreOJ/2606/data/classroom15.in new file mode 100644 index 00000000..21b5e7a3 --- /dev/null +++ b/LibreOJ/2606/data/classroom15.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8db0bb604ed3f10dd435717c2045f978e197715dfc6f4e001563900834f2c3dc +size 5014083 diff --git a/LibreOJ/2606/data/classroom16.ans b/LibreOJ/2606/data/classroom16.ans new file mode 100644 index 00000000..74ee2756 --- /dev/null +++ b/LibreOJ/2606/data/classroom16.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d44ca0ce5f769f040d2bab3f97df5b615d9ff8105b088d725eef0033ec6218b3 +size 10 diff --git a/LibreOJ/2606/data/classroom16.in b/LibreOJ/2606/data/classroom16.in new file mode 100644 index 00000000..d3f86437 --- /dev/null +++ b/LibreOJ/2606/data/classroom16.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9025a1926e6bd081c7be6133610bc31fe24a5bfae68cc8382070e857f7e6587f +size 7634926 diff --git a/LibreOJ/2606/data/classroom17.ans b/LibreOJ/2606/data/classroom17.ans new file mode 100644 index 00000000..4ae862d0 --- /dev/null +++ b/LibreOJ/2606/data/classroom17.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2bf022346d3a9e9952032172fd8e014664deef967213370a47cd55872aebabd5 +size 10 diff --git a/LibreOJ/2606/data/classroom17.in b/LibreOJ/2606/data/classroom17.in new file mode 100644 index 00000000..1445bfe3 --- /dev/null +++ b/LibreOJ/2606/data/classroom17.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5778b13219618fdaec50fb7102324c1d10145c53acdbbc4b1c3df3a6802e990e +size 10249764 diff --git a/LibreOJ/2606/data/classroom18.ans b/LibreOJ/2606/data/classroom18.ans new file mode 100644 index 00000000..16b909ce --- /dev/null +++ b/LibreOJ/2606/data/classroom18.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fed58cb96759a96a865304153f6021592590f82c8546c4ed7b3504fb499d574 +size 10 diff --git a/LibreOJ/2606/data/classroom18.in b/LibreOJ/2606/data/classroom18.in new file mode 100644 index 00000000..a6f35ee5 --- /dev/null +++ b/LibreOJ/2606/data/classroom18.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:18fed3239e0057198e64e5bdc4176e762f85462fe64fb081027942bec4760e9e +size 12868740 diff --git a/LibreOJ/2606/data/classroom19.ans b/LibreOJ/2606/data/classroom19.ans new file mode 100644 index 00000000..3923268c --- /dev/null +++ b/LibreOJ/2606/data/classroom19.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7f61e751542604dc77ec901ad614ba4f2ec82260dabbf3df643836e5a10bde3 +size 10 diff --git a/LibreOJ/2606/data/classroom19.in b/LibreOJ/2606/data/classroom19.in new file mode 100644 index 00000000..a132f116 --- /dev/null +++ b/LibreOJ/2606/data/classroom19.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cedc41e60fe41bc5ea9b8a7e814ecafe33582a39c6fdd84531fe3ba5a5be544 +size 12870042 diff --git a/LibreOJ/2606/data/classroom2.ans b/LibreOJ/2606/data/classroom2.ans new file mode 100644 index 00000000..b0f44a70 --- /dev/null +++ b/LibreOJ/2606/data/classroom2.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be26dbc862aa51f2be5dfd00837fa17a407cedab89cf8aec0c86b32bd78f631f +size 5 diff --git a/LibreOJ/2606/data/classroom2.in b/LibreOJ/2606/data/classroom2.in new file mode 100644 index 00000000..15fa90dc --- /dev/null +++ b/LibreOJ/2606/data/classroom2.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0cbe3aee94f344f054bac72e92e3e907b1324fc637363e7c9789d653d5f8fb14 +size 229 diff --git a/LibreOJ/2606/data/classroom20.ans b/LibreOJ/2606/data/classroom20.ans new file mode 100644 index 00000000..32e3494c --- /dev/null +++ b/LibreOJ/2606/data/classroom20.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d5f2e69d3184fafce216a0a3bbc48b6a0971ea644f8502bf19ffce5bd358b06 +size 10 diff --git a/LibreOJ/2606/data/classroom20.in b/LibreOJ/2606/data/classroom20.in new file mode 100644 index 00000000..359a8930 --- /dev/null +++ b/LibreOJ/2606/data/classroom20.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:856572dc78d541eac32697a7870fb090b2086efb932f45c518fb14931f1c8b3a +size 12869519 diff --git a/LibreOJ/2606/data/classroom3.ans b/LibreOJ/2606/data/classroom3.ans new file mode 100644 index 00000000..3511f297 --- /dev/null +++ b/LibreOJ/2606/data/classroom3.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a6fea88f1f4b219ceb90682c04fd1ba1febd0ba67fd1dd30fcca180eecbb7b5 +size 5 diff --git a/LibreOJ/2606/data/classroom3.in b/LibreOJ/2606/data/classroom3.in new file mode 100644 index 00000000..9ee050cb --- /dev/null +++ b/LibreOJ/2606/data/classroom3.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:328b9a7c42d35d62f053f945c01a41734db396c09cadadc75ccfd068a03fac9f +size 20812 diff --git a/LibreOJ/2606/data/classroom4.ans b/LibreOJ/2606/data/classroom4.ans new file mode 100644 index 00000000..e513ecb2 --- /dev/null +++ b/LibreOJ/2606/data/classroom4.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ee22276481fedb2e9c3134c6991986099e4119f7520bf354861ba16bdf5e5621 +size 7 diff --git a/LibreOJ/2606/data/classroom4.in b/LibreOJ/2606/data/classroom4.in new file mode 100644 index 00000000..a736ed2b --- /dev/null +++ b/LibreOJ/2606/data/classroom4.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4906e79fc56dbc8f2af7591b3ec30c0dbd6240c74a996ba7fee353852a535f30 +size 20938 diff --git a/LibreOJ/2606/data/classroom5.ans b/LibreOJ/2606/data/classroom5.ans new file mode 100644 index 00000000..92b1c6dd --- /dev/null +++ b/LibreOJ/2606/data/classroom5.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70897bd602308e9879b541165f98c48efeff0f4fd3e25e024d1e8583155e6262 +size 7 diff --git a/LibreOJ/2606/data/classroom5.in b/LibreOJ/2606/data/classroom5.in new file mode 100644 index 00000000..17ba41fa --- /dev/null +++ b/LibreOJ/2606/data/classroom5.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:52ca84366cabfe9e91f32b1b271726468f5ca9af6a4773d08be70b3b15bd979c +size 20862 diff --git a/LibreOJ/2606/data/classroom6.ans b/LibreOJ/2606/data/classroom6.ans new file mode 100644 index 00000000..fd2efefb --- /dev/null +++ b/LibreOJ/2606/data/classroom6.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47d6a13a01b6550abce359d78d779c1ec8a83eee6084b98ef089794b678f9ea3 +size 7 diff --git a/LibreOJ/2606/data/classroom6.in b/LibreOJ/2606/data/classroom6.in new file mode 100644 index 00000000..5ee5e2ce --- /dev/null +++ b/LibreOJ/2606/data/classroom6.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb95bee0588241be60bd3f41cdd7eb8f9be015dee85dd58b09c6addd6973fe8c +size 20858 diff --git a/LibreOJ/2606/data/classroom7.ans b/LibreOJ/2606/data/classroom7.ans new file mode 100644 index 00000000..d565fd72 --- /dev/null +++ b/LibreOJ/2606/data/classroom7.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f41d343b1319079717609b9b5eae288fb29ab69e80d9aad24f10735eecdff00 +size 5 diff --git a/LibreOJ/2606/data/classroom7.in b/LibreOJ/2606/data/classroom7.in new file mode 100644 index 00000000..7efaa7f2 --- /dev/null +++ b/LibreOJ/2606/data/classroom7.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6157bdb3cf491662c5a76cab976e329bf925e7269047b125c286cd8f5970966 +size 769725 diff --git a/LibreOJ/2606/data/classroom8.ans b/LibreOJ/2606/data/classroom8.ans new file mode 100644 index 00000000..804fcc90 --- /dev/null +++ b/LibreOJ/2606/data/classroom8.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a271f2a916b0b6ee6cecb2426f0b3206ef074578be55d9bc94f6f3fe3ab86aa +size 2 diff --git a/LibreOJ/2606/data/classroom8.in b/LibreOJ/2606/data/classroom8.in new file mode 100644 index 00000000..d1efa71a --- /dev/null +++ b/LibreOJ/2606/data/classroom8.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ec96d926b8b2985835bb0cd593d01b15528a38acd32a3280ddd5bbd582931149 +size 988096 diff --git a/LibreOJ/2606/data/classroom9.ans b/LibreOJ/2606/data/classroom9.ans new file mode 100644 index 00000000..281d2fc3 --- /dev/null +++ b/LibreOJ/2606/data/classroom9.ans @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:19affd4043954dda63b292a383700c478171c47dcb31e66c47409a83dca6f254 +size 9 diff --git a/LibreOJ/2606/data/classroom9.in b/LibreOJ/2606/data/classroom9.in new file mode 100644 index 00000000..e8db31ed --- /dev/null +++ b/LibreOJ/2606/data/classroom9.in @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4af1aad534ac26ce4ba3941207b01fa52d9f7940022a61635618bb10e479da2b +size 1190352