//прога на Pascal`e
var
n: uint64;
x : int64;
//
function f (a, p:int64):int64;
var i, sum: int64;
begin
sum:=1;
for i:=1 to p do
sum:=sum*(a-i);
f:=sum;
end;
//
begin
readln (x, n);
write (f(x, n));
end.
Объяснение:
Синтаксис могу плохо помнить:
#include <iostream>
using namespace std;
int main(void){
int x,y,i,N;
cin>>N;
for(i=0;i<N;i++){
cin>>x>>y;
if(x==y) cout<<"2";
else cout<<"1";
}
return 0;
}
Выигрышная стратегия-постоянно уравнивать большее число к меньшему, так игра в конечном итоге сведётся для оппонента к проигрышной позиции (1,1) при оптимальной игре каждого игрока. Так, получается что позиции с равными числами заведомо проигрышные, а с разными-выигрышные для игрока, делающего ход.