Menu
Coddy logo textTech

מציאת הסכום המינימלי

שיעור 17 מתוך 17 בקורס מניפולציה על ביטים של Coddy.

challenge icon

אתגר

בינוני

נתון לך מערך <strong>a</strong> בגודל <strong>n</strong>.

אפשר לבצע את הפעולה הבאה על המערך:

  • בחר שני מספרים שלמים שונים <strong>i</strong> , <strong>j</strong> (1 ≤ i < j ≤ n), והחלף את <strong>a<sub>i</sub></strong> ב-<strong>x</strong> ואת <strong>a<sub>j</sub></strong> ב-<strong>y</strong>. כדי לא לפגוע במערך, התנאי <strong>a<sub>i </sub>| a<sub>j </sub>= x | y</strong> חייב להתקיים, כאשר <strong>|</strong> מסמל את פעולת ה-OR ברמת הסיביות. שים לב ש-<strong>x</strong> ו-<strong>y</strong> הם מספרים שלמים אי-שליליים.

יש להציג את הסכום המינימלי של המערך שאפשר לקבל לאחר ביצוע הפעולה שלעיל מספר כלשהו של פעמים.

נסו בעצמכם

#include <vector>
using namespace std;

int FindMinSum(vector<int> a) {
    // כתבו כאן קוד
}

כל השיעורים ביחידה מניפולציה על ביטים

תרגלו בעצמכם: קומפיילר C++ אונליין