Task: | Ryhmät |
Sender: | ArktinenKarpalo |
Submission time: | 2025-09-27 01:29:18 +0300 |
Language: | C++ (C++17) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 0.01 s | 1, 2, 3 | details |
#2 | WRONG ANSWER | 0.01 s | 1, 2, 3 | details |
#3 | ACCEPTED | 0.04 s | 1, 2, 3 | details |
#4 | ACCEPTED | 0.00 s | 1, 2, 3 | details |
#5 | ACCEPTED | 0.03 s | 1, 2, 3 | details |
#6 | WRONG ANSWER | 0.43 s | 2 | details |
#7 | TIME LIMIT EXCEEDED | -- | 2 | details |
#8 | TIME LIMIT EXCEEDED | -- | 2 | details |
#9 | ACCEPTED | 0.01 s | 2, 3 | details |
#10 | WRONG ANSWER | 0.59 s | 3 | details |
#11 | TIME LIMIT EXCEEDED | -- | 3 | details |
#12 | TIME LIMIT EXCEEDED | -- | 3 | details |
#13 | ACCEPTED | 0.67 s | 3 | details |
#14 | TIME LIMIT EXCEEDED | -- | 3 | details |
#15 | TIME LIMIT EXCEEDED | -- | 3 | details |
#16 | TIME LIMIT EXCEEDED | -- | 3 | details |
Compiler report
input/code.cpp: In function 'int cnt_fst(std::bitset<100000>&, int)': input/code.cpp:12:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::size_t' {aka 'long unsigned int'} [-Wsign-compare] 12 | for (int i = 0; i < bs.size(); i) { | ~~^~~~~~~~~~~ input/code.cpp:12:34: warning: for increment expression has no effect [-Wunused-value] 12 | for (int i = 0; i < bs.size(); i) { | ^
Code
#include <bits/stdc++.h> #define N 100000 using namespace std; #define Y 512 int cnt_Y(const std::bitset<Y> &lol) { return lol.count(); } int cnt_fst(bitset<100000> &bs, int n) { int cnt = 0; for (int i = 0; i < bs.size(); i) { /*if (i + Y < bs.size()) { int cnt2 = cnt_Y(*(((bitset<Y> *)(((char *)(&bs)) + (i / 8))))); if (cnt2 + cnt < n) { i += Y; cnt += cnt2; continue; // return i; } }*/ if (bs[i]) cnt++; if (cnt == n) return i; i++; } return -1; } void bsprint(bitset<100000> &bs) { for (int i = 0; i < 10; i++) { cout << bs[i]; } cout << endl; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, t; cin >> n >> t; vector<int> a(n), b(n); vector<pair<int, int>> childrenA; vector<pair<int, int>> childrenB; array<bitset<100000>, 100001> A, B; for (int i = 0; i < n; i++) { cin >> a[i] >> b[i]; childrenA.push_back({a[i], i}); childrenB.push_back({b[i], i}); } sort(childrenA.begin(), childrenA.end()); sort(childrenB.begin(), childrenB.end()); vector<pair<int, pair<bitset<100000>, vector<pair<int, pair<int, bool>>>>>> ABH; bitset<100000> bs; ABH.push_back({0, {bs, {}}}); auto it = childrenA.begin(); auto it2 = childrenB.begin(); vector<pair<int, pair<int, bool>>> mem; for (int i = 1; i <= n; i++) { while (it != childrenA.end() && it->first == i) { bs.set(it->second); mem.push_back({i, {it->second, true}}); it++; } while (it2 != childrenB.end() && it2->first == i - 1) { bs.reset(it2->second); mem.push_back({i, {it2->second, false}}); it2++; } if (mem.size() > 10) { // whatever factor (ABH[ABH.size() - 1]).second.second = mem; ABH.push_back({i, {bs, {}}}); mem.clear(); } if (i == n && mem.size() > 0) { ABH[ABH.size() - 1].second.second = mem; ABH.push_back({i, {bs, {}}}); mem.clear(); } } while (t--) { int m; cin >> m; bitset<100000> C; C.set(); C >>= (100000 - n); vector<int> k(m); for (int i = 0; i < m; i++) cin >> k[i]; sort(k.begin(), k.end()); bool ok = true; for (int i = 0; i < m; i++) { int cr = k[i]; auto rslt = upper_bound(ABH.begin(), ABH.end(), cr, [](const auto &a, const auto &b) { return a < b.first; }); rslt--; bitset<100000> AB = ((*(rslt))).second.first; for (auto &u : (*(rslt)).second.second) { if (u.first > cr) break; AB[u.second.first] = u.second.second; } auto candidates = AB & C; int until = cnt_fst(candidates, cr); if (until == -1) { ok = false; break; } candidates >>= (100000 - until - 1); candidates <<= (100000 - until - 1); C ^= candidates; } if (ok) { cout << "YES\n"; } else { cout << "NO\n"; } } }
Test details
Test 1
Group: 1, 2, 3
Verdict: WRONG ANSWER
input |
---|
100 100 10 10 10 10 6 9 6 8 ... |
correct output |
---|
YES YES YES NO YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 2
Group: 1, 2, 3
Verdict: WRONG ANSWER
input |
---|
100 100 9 9 6 10 8 10 8 8 ... |
correct output |
---|
NO YES NO YES NO ... |
user output |
---|
YES YES YES YES YES ... |
Test 3
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
100 100 1 1 1 1 1 1 1 1 ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 4
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
100 100 100 100 100 100 100 100 100 100 ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 5
Group: 1, 2, 3
Verdict: ACCEPTED
input |
---|
100 100 4 9 3 8 7 9 7 9 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
NO NO NO NO NO ... |
Test 6
Group: 2
Verdict: WRONG ANSWER
input |
---|
1000 1000 9 10 2 5 10 10 5 5 ... |
correct output |
---|
YES YES YES YES NO ... |
user output |
---|
YES YES YES YES YES ... |
Test 7
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
1000 1000 5 7 9 9 3 7 8 10 ... |
correct output |
---|
YES NO NO YES YES ... |
user output |
---|
(empty) |
Test 8
Group: 2
Verdict: TIME LIMIT EXCEEDED
input |
---|
1000 1000 1 1 1 1 1 1 1 1 ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
(empty) |
Test 9
Group: 2, 3
Verdict: ACCEPTED
input |
---|
1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 10
Group: 3
Verdict: WRONG ANSWER
input |
---|
100000 1000 774 778 363 852 309 668 261 459 ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 11
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 1000 1233 1914 901 3963 1277 4293 1083 1599 ... |
correct output |
---|
NO NO YES NO NO ... |
user output |
---|
(empty) |
Test 12
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 1000 1970 8631 4606 5797 6317 8162 8204 8789 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
(empty) |
Test 13
Group: 3
Verdict: ACCEPTED
input |
---|
100000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
YES YES YES YES YES ... |
Test 14
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 100000 1 100000 1 100000 1 100000 1 100000 ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
(empty) |
Test 15
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 100000 80971 98445 93046 96043 74840 94035 95931 96609 ... |
correct output |
---|
NO NO NO NO NO ... |
user output |
---|
(empty) |
Test 16
Group: 3
Verdict: TIME LIMIT EXCEEDED
input |
---|
100000 10000 6481 14350 69129 87600 6217 16462 4387 16625 ... |
correct output |
---|
YES YES YES YES YES ... |
user output |
---|
(empty) |