881 auto m = map<int, int>();
883 for(
int i = 0; i < n; i++) {
888 if(!m.contains(current)) {
889 m.insert(pair(current, 1));
893 if(!m.contains(current + length)) {
894 m.insert(pair(current + length, -1));
896 m[current + length]--;
900 if(!m.contains(current)) {
901 m.insert(pair(current, -1));
905 if(!m.contains(current - length)) {
906 m.insert(pair(current - length, 1));
908 m[current - length]++;
913 unsigned int layer_count = 0;
914 unsigned int count = 0;
917 for(
const auto p: m) {
918 layer_count += p.second;
919 if(layer_count >= 2) {
921 count += p.first - prev;
927 count += p.first - prev;