У меня возникла странная проблема с двумя похожими фрагментами кода C++, которые должны выполнять одну и ту же задачу, но дают разные результаты.
Проблема связана с оператором внутреннего цикла.
При реализации решения я столкнулся с этой проблемой: -
int n;
cin >> n;
vector arr(n);
REP(i, 0, n){
cin >> arr;
}
vector dup = arr;
int maxVal = INT_MIN;
REP(i, 0, n){
if (arr > maxVal){
maxVal = arr;
}
if (arr < maxVal){
arr = maxVal;
}
}
REP(i, 0, n){
dup = arr - dup;
}
int ans = 0;
sort(dup.begin(), dup.end());
REP(i, 0, n){
if (dup != 0){
ans += (n - i + 1) * dup;
//This inner loop
for(int j = i; j < n; j++){
dup[j] -= dup[i];
}
}
}
cout
Подробнее здесь: https://stackoverflow.com/questions/787 ... nd-transfo