private static int CountFolds(int X, int Y, int x, int y)
if ((x > Y || x > X) && (y > Y || y > X))
throw new ArgumentException("No solution");
var transfX = X > Y ? X : Y;
var transfY = X > Y ? Y : X;
var transfx = x > y ? x : y;
var transfy = x > y ? y : x;
var count = transfY / transfy + transfX / transfx;
public static void Main()
Console.WriteLine(CountFolds(3, 9, 5, 2));
Console.WriteLine(CountFolds(8, 4, 3, 1));
Console.WriteLine(CountFolds(9, 4, 3, 2));
Console.WriteLine(CountFolds(12, 5, 5, 2));
Console.WriteLine(CountFolds(10, 12, 5, 6));
Console.WriteLine(CountFolds(100, 1, 2, 1));
Console.WriteLine(CountFolds(100, 10, 200, 2));
Console.WriteLine(CountFolds(100, 1, 200, 2));
Console.WriteLine(CountFolds(3, 9, 5, 7));