Мое предложение - в массиве 20 на 20 храниться структура struct cell { int rabbit; // кол-во зайцев int* wolfs; // очки волков int* she_wolfs;// очки волчиц } очки предлагаю хранить умноженными на 10 во избежания проблем вещественным сравнением. Но есть одна проблема с задачей в целом. Это порядок ходов. Если в двух соседних клетках находятся заяц и волк, и первый ходит заяц, то волк может остаться голодным. Если же первый ходит волк - он то зайца может скушать. Поэтому, я предлагаю, что вначале ходят все зайцы, потом все волки - по очереди.
Program z1;var N,A,B,C,D:integer;beginreadln(N);A:=N div 1000;B:=(N div 100) - (N div 1000)*10;C:=(N div 10)- (N div 100)*10;D:=(N mod 10);n:=0;if (A mod 3)=0 then N:=N+A;if (B mod 3)=0 then N:=N+B;if (C mod 3)=0 then N:=N+C;if (D mod 3)=0 then N:=N+D;writeln(N); end.
Это скрипт bash (командная оболочка UNIX).