// IFMP - Serie 11 - Challenge 125
// program: KaelinGregor
// author: Gregor KŠlin
#include
#include
using namespace std;
using namespace ifm;
void b(unsigned int n);
void c(unsigned int n);
void a(unsigned int n) {
if(n==0) forward();
else {
forward(n);
jump(n/4);
b(n-1);
left(80);
save();
right(90);
c(43);
restore();
a (n-1);
}
}
void b(unsigned int n) {
if(n==0) forward();
else {
right(3*n);
}
}
void c(unsigned int n) {
if(n==0) forward();
else {
forward(n/7);
jump(n/28);
b(n-1);
left(80);
c(n-1);
right(90);
}
}
void d(unsigned int n){
if (n==0)forward();
else {
if (n<14) right(15);
forward(n);
save();
c(20);
restore();
save();
right(180);
c(20);
restore();
d(n-1);
}
}
int main() {
left(62);
a(43);
right(163);
d(34);
return 0;
}