Пусть количество флешек равно соответственно a1, a2, a3, a4, причем эти количества уже отсортированы таким образом, что a1≥a2≥a3≥a4. Рассмотрим худший случай. Выбрали 3 комплекта флешек с максимальным их количеством. a1+a2+a3. После этого добавили одну флешку и получили 100 флешек, среди которых хотя бы одна из наименьшей группы. То есть a1+a2+a3=99 в худшем случае. Значит, a4=113-99=14. Теперь надо определить наименьшее количество флешек, чтобы гарантированно на руках было 3 вида. Опять же рассмотрим худший случай. Так выбрали флешки, что среди них все флешки первого вида, все флешки второго вида. Но все равно одной флешки третьего вида не хватает. В худшем случае значение a1+a2 должно быть максимально возможным. Казалось бы, есть условие a1+a2+a3=99. Но не стоит забывать про то, что ранее были наложены ограничения на a1, a2, a3, a4: a1≥a2≥a3≥a4. В связи с добавленным позже определением a4=14, ограничение для a3 становится таким: a3≥14. В худшем случае, чтобы максимизировать a1+a2, следует выбрать a3=14. То есть a1+a2=99-14=85. Следовательно, необходимо 85+1=86 флешек, чтобы быть уверенным, что хотя бы три флешки разных видов присутствуют.
galereyaas1568
25.11.2022
#include <iostream> #include <cstdlib> #include <ctime> int main() { using namespace std; cout << "Enter size of array: "; int N; cin >> N; int * ARR = new int[N]; srand(time(0)); int i; for (i = 0; i < N; ++i) ARR[i] = rand() % 100 + 1;
cout << "Here is an original array:\n"; for (i = 0; i < N; ++i) cout << ARR[i] << " "; cout << endl;
int temp = ARR[N - 1]; for (i = N - 1; i > 0; --i) ARR[i] = ARR[i - 1]; ARR[0] = temp;
cout << "\nHere is a new array:\n"; for (i = 0; i < N; ++i) cout << ARR[i] << " "; cout << endl;
Рассмотрим худший случай. Выбрали 3 комплекта флешек с максимальным их количеством. a1+a2+a3. После этого добавили одну флешку и получили 100 флешек, среди которых хотя бы одна из наименьшей группы. То есть a1+a2+a3=99 в худшем случае. Значит, a4=113-99=14.
Теперь надо определить наименьшее количество флешек, чтобы гарантированно на руках было 3 вида. Опять же рассмотрим худший случай. Так выбрали флешки, что среди них все флешки первого вида, все флешки второго вида. Но все равно одной флешки третьего вида не хватает. В худшем случае значение a1+a2 должно быть максимально возможным. Казалось бы, есть условие a1+a2+a3=99. Но не стоит забывать про то, что ранее были наложены ограничения на a1, a2, a3, a4: a1≥a2≥a3≥a4. В связи с добавленным позже определением a4=14, ограничение для a3 становится таким: a3≥14. В худшем случае, чтобы максимизировать a1+a2, следует выбрать a3=14. То есть a1+a2=99-14=85. Следовательно, необходимо 85+1=86 флешек, чтобы быть уверенным, что хотя бы три флешки разных видов присутствуют.