#include <iostream>
using namespace std;
int w, i, temp;
void silnia (int n) {
int copy_n = n;
s1: w = 1;
s2: if (n == 0) goto s6;
s3: w = w * n;
s4: n = n - 1;
s5: goto s2;
s6: cout<<"!"<<copy_n<<" = "<<w<<endl;
}
void dwumian (int n, int k) {
s1: w = 1;
s2: i = 0;
s3: i = i + 1;
s4: if (i > k) goto s10;
s5: temp = n - i;
s6: temp = temp + 1;
s7: temp = temp * w;
s8: w = temp / i;
s9: goto s3;
s10: cout<<"("<<n<<" po "<<k<<") = "<<w;
}
int main () {
//18) Oblyczyć !n oraz (n po k) - bez uzycia silni
int n = 10, k = 7;
silnia(n);
dwumian(n, k);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCB3LCBpLCB0ZW1wOwoKdm9pZCBzaWxuaWEgKGludCBuKSB7CglpbnQgY29weV9uID0gbjsKICAgIHMxOiB3ID0gMTsKICAgIHMyOiBpZiAobiA9PSAwKSBnb3RvIHM2OwogICAgczM6IHcgPSB3ICogbjsKICAgIHM0OiBuID0gbiAtIDE7CiAgICBzNTogZ290byBzMjsKICAgIHM2OiBjb3V0PDwiISI8PGNvcHlfbjw8IiA9ICI8PHc8PGVuZGw7Cn0KCnZvaWQgZHd1bWlhbiAoaW50IG4sIGludCBrKSB7CiAgICBzMTogdyA9IDE7CiAgICBzMjogaSA9IDA7CiAgICBzMzogaSA9IGkgKyAxOwogICAgczQ6IGlmIChpID4gaykgZ290byBzMTA7CiAgICBzNTogdGVtcCA9IG4gLSBpOwogICAgczY6IHRlbXAgPSB0ZW1wICsgMTsKICAgIHM3OiB0ZW1wID0gdGVtcCAqIHc7CiAgICBzODogdyA9IHRlbXAgLyBpOwogICAgczk6IGdvdG8gczM7CiAgICBzMTA6IGNvdXQ8PCIoIjw8bjw8IiBwbyAiPDxrPDwiKSA9ICI8PHc7Cn0KCgppbnQgbWFpbiAoKSB7CiAgICAvLzE4KSBPYmx5Y3p5xIcgIW4gb3JheiAobiBwbyBrKSAtIGJleiB1enljaWEgc2lsbmkKCiAgICBpbnQgbiA9IDEwLCBrID0gNzsKICAgIHNpbG5pYShuKTsKICAgIGR3dW1pYW4obiwgayk7Cn0=