Из условия неясно, как определяются размеры участков огорода - линейными размерами или площадью. Т.е. что должно быть целым - линейные размеры или площадь? Будем считать, что целыми должны быть линейные размеры. Это означает, что достаточно среди чисел А и В найти четное и разделить его пополам. В этом случае участок деда будет равен половине огорода. Если оба числа нечетных, деду достанется меньше половины огорода.
var A,B:integer; f:Text; begin Assign(f,'input.txt'); Reset(f); readln(f,A,B); writeln('Размеры участка ',A,', ',B); if (A mod 2=0) or (B mod 2=0) then writeln('0') else writeln('1') end.
Код:
#include <iostream>
int* rearrange(int *A, int Asize) {
int * result = new int[Asize];
int p = 0;
for (int i = 0; i < Asize; i += 2) {
result[p] = A[i];
++p;
}
for (int i = 1; i < Asize; i += 2) {
result[p] = A[i];
++p;
}
return result;
}
void print_arr(const int *A, int Asise) {
for (int i = 0; i < Asise; ++i) {
std::cout << A[i] << " ";
}
}
int* change_it_k_times(int * const A, int Asize, int K) {
int * result = A;
for (auto i = 0; i < K; ++i) {
result = rearrange(result, Asize);
print_arr(result, Asize);
}
return result;
}
template <typename T>
void get_sequence(T* A, int N) {
for (auto i = 0; i < N; ++i) {
std::cin >> A[i];
}
}
int main () {
int N, K;
std::cin >> N;
auto A = new int[N];
get_sequence(A, N);
std::cin >> K;
auto R = change_it_k_times(A, N, K);
delete[] A;
delete[] R;
return 0;
}
Это означает, что достаточно среди чисел А и В найти четное и разделить его пополам. В этом случае участок деда будет равен половине огорода. Если оба числа нечетных, деду достанется меньше половины огорода.
var
A,B:integer;
f:Text;
begin
Assign(f,'input.txt');
Reset(f);
readln(f,A,B);
writeln('Размеры участка ',A,', ',B);
if (A mod 2=0) or (B mod 2=0) then writeln('0')
else writeln('1')
end.
Результат решения:
Размеры участка 8, 4
0