leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

1943.cpp (778B)


0 class Solution {
1 public:
2 vector<vector<long long>> splitPainting(const vector<vector<int>> &segments) const {
3 static long long prefix[100002];
4 static bool seen[100002];
6 memset(seen, 0x00, sizeof(seen));
7 memset(prefix, 0x00, sizeof(prefix));
8 for (const auto seg : segments) {
9 prefix[seg[0]] += seg[2];
10 prefix[seg[1]] -= seg[2];
12 seen[seg[0]] = seen[seg[1]] = 1;
13 }
15 vector<vector<long long>> res;
16 long long crnt = 0, prev = 0;
17 for (int i = 1; i < 100002; i++) {
18 if (crnt && seen[i]) {
19 res.push_back({prev, i, crnt});
20 }
21 if (seen[i]) prev = i;
22 crnt += prefix[i];
23 }
25 return res;
26 }
27 };