bool ok1(int a, int b, int c){
return (a+b > c && a+c > b && b+c > a) && min(a,min(b,c)) > 0;
}
bool ok2(int a, int b, int c){
return ok1(a,b,c) && (a == b || a == c || b == c);
}
signed main(){
const int n = 3, m = 7;
int arr[n][m];
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
cin >> arr[i][j];
vector<int> ans;
for(int j = 0; j < m; j++)
if(ok2(arr[0][j],arr[1][j],arr[2][j]))
ans.push_back(j+1);
cout << ans.size() << "\n";
for(auto i: ans)
cout << i << " ";
}
Подробнее - на -
Объяснение:
X=30
q=1
w=2
e=3
r=4
list=[q,w,e,r]
for i in list:
if i==X and i==q:
print(f'Нужен ящик q')
if i==X and i==w:
print(f'Нужен ящик w')
if i==X and i==e:
print(f'Нужен ящик e')
if i==X and i==r:
print(f'Нужен ящик r')
if e+r==X:
print(f'Нужны ящики e и r')
if w+r==X:
print(f'Нужны ящики w и r')
if w+e==X:
print(f'Нужны ящики w и e')
if q+r==X:
print(f'Нужны ящики q и r')
if q+e==X:
print(f'Нужны ящики q и e')
if q+w==X:
print(f'Нужны ящики q и w')
if w+e+r==X:
print(f'Нужны ящики w, e и r')
if q+e+r==X:
print(f'Нужны ящики q, e и r')
if q+w+r==X:
print(f'Нужны ящики q, w и r')
if q+w+e==X:
print(f'Нужны ящики q, w и e')
else:
print('Нет таких ящиков')
Объяснение:
В кратце: я предполагаю, что количество ящиков по 1шт (q,w,e,r). Далее я пробегаюсь по всем возможных вариантам, каким образом можно получить из q,w,e,r X кг