У вас есть ошибка в этом l oop:
vector <int> k, a, s;
for (int i = 0; i < n; ++i)
{
scanf("%d", &k[i]);
}
В момент запуска этого l oop вектор k
пуст. В результате &k[i]
является указателем на место в памяти, которое не является частью вектора k
, что приводит к неопределенному поведению. То же самое относится и к другим циклам.
Если вы хотите использовать scanf
таким образом, убедитесь, что изменили размеры своих векторов перед чтением в них. Например, вы можете объявить их как
vector<int> k(n), a(n), s(n);
, чтобы убедиться, что они имеют правильный размер.
Кроме того, не забудьте проверить возвращаемое значение scanf
, чтобы убедиться, что чтения завершаются успешно - если бы проблема действительно была в scanf
, было бы неплохо локализовать ошибку.