Собственно суть задания в том, чтобы найти сумму интервалов, например сумма {1,5} {6,10} равна 8, тк 5-1 = 4 и 10-6= 4,
4+4=8. А например {1,5} {2,4} будет только 4, тк первый интервал перекрывает второй.
Вот код, который я написал и который проходит тесты по умолчанию:
int sum_intervals(std::vector<std::pair<int, int>> intervals)
{
int max1 = 0; //
for (auto a : intervals) //Найдем самое большее число из всех интервалов
if (max(a.second, a.first) > max1) //
max1 = max(a.second, a.first); //
vector<int> arr(max1); // Чтобы задать размер массива
for (int i = 0; i < intervals.size(); i++)
for (int j = intervals[i].first; j < intervals[i].second; j++) // По умолчанию все ячейки массива будут равны нулю
arr[j] = 1; // Поэтому изменяем те ячейки, которые входят в наши интервалы на другое число
int res = 0; // наш результат
for (auto a : arr)
if (a != 0) // Каждый раз находя ячейку не равную нулю означает что она входит в интервалы
res++; // Поэтому увеличиваем результат на 1
return res;
}
Когда пытаюсь пройти случайные тесты вылазит вот это:
double free or corruption (out)
UndefinedBehaviorSanitizer:DEADLYSIGNAL
==1==ERROR: UndefinedBehaviorSanitizer: SEGV on unknown address 0x000000000000 (pc 0x7fec76fd99a0 bp 0x7ffd52eee560 sp 0x7ffd52eee310 T1)
==1==The signal is caused by a READ memory access.
==1==Hint: address points to the zero page.
==1==WARNING: invalid path to external symbolizer!
==1==WARNING: Failed to use and restart external symbolizer!
#0 0x7fec76fd999f (/lib/x86_64-linux-gnu/libc.so.6+0x4099f)
#1 0x7fec77022906 (/lib/x86_64-linux-gnu/libc.so.6+0x89906)
#2 0x7fec77029979 (/lib/x86_64-linux-gnu/libc.so.6+0x90979)
#3 0x7fec77030ee4 (/lib/x86_64-linux-gnu/libc.so.6+0x97ee4)
#4 0x42590b (/workspace/test+0x42590b)
#5 0x42dd19 (/workspace/test+0x42dd19)
#6 0x42be5e (/workspace/test+0x42be5e)
#7 0x42b9e8 (/workspace/test+0x42b9e8)
#8 0x42b5bb (/workspace/test+0x42b5bb)
#9 0x42eec5 (/workspace/test+0x42eec5)
#10 0x4259ed (/workspace/test+0x4259ed)
#11 0x7fec76fbab96 (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
#12 0x4045b9 (/workspace/test+0x4045b9)
UndefinedBehaviorSanitizer can not provide additional info.
==1==ABORTING
Собственно в чем потенциально может быть проблема?