#include <iostream>
using namespace std;
void f(int *p, int *e) {if (p<=e) {*p+=*(p-1); f(p+1,e);}}
void g(int *p, int *e, int a) {if (p<=e) {int t=*p; *p=a; g(p+1,e,a+t);}}
void s(int *p, int *e) {if (p<=e) {cout<<*p<<" "; s(p+1,e);} else cout<< "\n";}
int main() {
const int N = 5;
int a[N] = {1,2,3,4,5}, *ae=a+N-1;
s(a,ae); f(a+1,ae); s(a,ae);
int b[N] = {1,2,3,4,5}, *be=b+N-1;
s(b,be); g(b,be,0); s(b,be);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBmKGludCAqcCwgaW50ICplKSB7aWYgKHA8PWUpIHsqcCs9KihwLTEpOyBmKHArMSxlKTt9fQp2b2lkIGcoaW50ICpwLCBpbnQgKmUsIGludCBhKSB7aWYgKHA8PWUpIHtpbnQgdD0qcDsgKnA9YTsgZyhwKzEsZSxhK3QpO319CnZvaWQgcyhpbnQgKnAsIGludCAqZSkge2lmIChwPD1lKSB7Y291dDw8KnA8PCIgIjsgcyhwKzEsZSk7fSBlbHNlIGNvdXQ8PCAiXG4iO30KCmludCBtYWluKCkgewoJY29uc3QgaW50IE4gPSA1OwoJaW50IGFbTl0gPSB7MSwyLDMsNCw1fSwgKmFlPWErTi0xOwoJcyhhLGFlKTsgZihhKzEsYWUpOyBzKGEsYWUpOwogICAgaW50IGJbTl0gPSB7MSwyLDMsNCw1fSwgKmJlPWIrTi0xOwoJcyhiLGJlKTsgZyhiLGJlLDApOyBzKGIsYmUpOwoJcmV0dXJuIDA7Cn0=