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]; 5 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]; 11 12 seen[seg[0]] = seen[seg[1]] = 1; 13 } 14 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 } 24 25 return res; 26 } 27 };