using System;
public class Test
{
public static void diamondSquare(int xLeft, int yBottom, int length)
{
Console.Out.WriteLine(xLeft +" "+yBottom + " "+length);
if (length > 1) {
length/=2;
diamondSquare (xLeft,yBottom,length);
diamondSquare (xLeft + length,yBottom,length);
diamondSquare (xLeft,yBottom + length,length);
diamondSquare (xLeft + length,yBottom + length,length);
}
}
public static Vec2int[] GetPoints(Vec2int L,Vec2int R, int length)
{
return new Vec2int[] {
new Vec2int (L.x, L.y + length),
new Vec2int (L.x + length, L.y),
new Vec2int (R.x, R.y - length),
new Vec2int (R.x - length, R.y)
};
}
public struct Vec2int
{
public int x;
public int y;
public Vec2int(int x,int y){
this.x=x;
this.y=y;
}
}
public static void Main()
{
diamondSquare(10,15,16);
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJCglwdWJsaWMgc3RhdGljIHZvaWQgZGlhbW9uZFNxdWFyZShpbnQgeExlZnQsIGludCB5Qm90dG9tLCBpbnQgbGVuZ3RoKQp7CiAgICBDb25zb2xlLk91dC5Xcml0ZUxpbmUoeExlZnQgKyIgIit5Qm90dG9tICsgIiAiK2xlbmd0aCk7CiAgICBpZiAobGVuZ3RoID4gMSkgewoJCWxlbmd0aC89MjsKICAgICAgICBkaWFtb25kU3F1YXJlICh4TGVmdCx5Qm90dG9tLGxlbmd0aCk7CiAgICAgICAgZGlhbW9uZFNxdWFyZSAoeExlZnQgKyBsZW5ndGgseUJvdHRvbSxsZW5ndGgpOwogICAgICAgIGRpYW1vbmRTcXVhcmUgKHhMZWZ0LHlCb3R0b20gKyBsZW5ndGgsbGVuZ3RoKTsKICAgICAgICBkaWFtb25kU3F1YXJlICh4TGVmdCArIGxlbmd0aCx5Qm90dG9tICsgbGVuZ3RoLGxlbmd0aCk7CiAgICB9Cn0KCnB1YmxpYyBzdGF0aWMgVmVjMmludFtdIEdldFBvaW50cyhWZWMyaW50IEwsVmVjMmludCBSLCBpbnQgbGVuZ3RoKQp7CiAgICByZXR1cm4gbmV3IFZlYzJpbnRbXSB7IAogICAgICAgIG5ldyBWZWMyaW50IChMLngsIEwueSArIGxlbmd0aCksCiAgICAgICAgbmV3IFZlYzJpbnQgKEwueCArIGxlbmd0aCwgTC55KSwgCiAgICAgICAgbmV3IFZlYzJpbnQgKFIueCwgUi55IC0gbGVuZ3RoKSwKICAgICAgICBuZXcgVmVjMmludCAoUi54IC0gbGVuZ3RoLCBSLnkpCiAgICB9Owp9CgpwdWJsaWMgc3RydWN0IFZlYzJpbnQKewogICAgcHVibGljIGludCB4OwogICAgcHVibGljIGludCB5OwogICAgcHVibGljIFZlYzJpbnQoaW50IHgsaW50IHkpewogICAgICAgIHRoaXMueD14OwogICAgICAgIHRoaXMueT15OwogICAgfQp9CgkKCQoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCWRpYW1vbmRTcXVhcmUoMTAsMTUsMTYpOwoJfQp9