#include <iostream>
using namespace std;
int main()
{
int m, n;
cin >> m >> n;
int a[m][n];
for(int i=0; i<m; i++)
for(int j=0; j<n; j++)
cin >> a[i][j];
int me=m/2;
if(me>0)
{
int k=1;
for(int i=2; i<m; i+=2)
{
for(int j=0; j<n; j++)
a[k][j]=a[i][j];
k++;
}
for(int i=m-me; i<m; i++)
for(int j=0; j<n; j++)
a[i][j]=0;
for(int i=0; i<m; i++)
{
for(int j=0; j<n; j++)
cout << a[i][j] << " ";
cout << endl;
}
}
return 0;
}
1)У 60 человек есть кошка и собака.
у 20 - кошка и птичка
у 30 - собака и птичка
У 10 человек есть и кошка, и собака, и птичка. 1.1
Отсюда делаем вывод, что набор пар животных 60, 20 и 30 три раза посчитали тех у кого одновременно все эти трое видов животных есть.
теперь считаем:
у 60-10=50 есть только кошка и собака(без птички!) 1.2
у 20-10=10 есть только кошка и птичка(без собаки!) 1.3
у 30-10=20 есть только собака и птичка(без кошки!) 1.4
2)у 150 человек есть кошка
у 130 - собака
у 50 - птичка.
Это у кого возможно по два-три животных посчитаем, нужно их почистить:
2.1) уберем у кошколюбов тех у кого по 2-3 вида животных:
это 1.1, 1.2, 1.3 множества: 150-10-50-10=80 есть только кошки
2.2) уберем у собаководов, тех у кого по 2-3 вида животных:
это 1.1, 1.2, 1.4 множества: 130-10-50-20=50 есть только собаки.
2.3) уберем у птицефилов, тех у кого по 2-3 вида животных:
это 1.1, 1.3, 1.4 множества: 50-10-10-20=10 есть только птицы.
3) Теперь можем сложить чистую информацию:
чистые(не пересекающиеся с остальными) множества:
не забудем про 4.1) У 70 человек вообще нет домашнего животного
1.1, 1.2, 1.3, 1.4, 2.1, 2.2, 2.3, 3.1
10+50+10+20+80+50+10+70=300