#include <iostream>
#include <functional>
using namespace std;
double Func(const double* A, int i) {
if(0 == A)
return 0;
return *(A + i);
}
void Big(double (*B)(const double* A, int i), const double* A, const int size) {
if(0 == B)
return;
for(int i = 0; i < size; ++i)
cout << B(A, i) << endl;
}
int main() {
double A[] = {1, 2, 3, 4};
Big( Func, A, 4 );
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpkb3VibGUgRnVuYyhjb25zdCBkb3VibGUqIEEsIGludCBpKSB7CiAgICBpZigwID09IEEpCiAgICAgICAgcmV0dXJuIDA7CgogICAgcmV0dXJuICooQSArIGkpOwp9Cgp2b2lkIEJpZyhkb3VibGUgKCpCKShjb25zdCBkb3VibGUqIEEsIGludCBpKSwgY29uc3QgZG91YmxlKiBBLCBjb25zdCBpbnQgc2l6ZSkgewogICAgaWYoMCA9PSBCKQogICAgICAgIHJldHVybjsKCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgIGNvdXQgPDwgQihBLCBpKSA8PCBlbmRsOwp9CgppbnQgbWFpbigpIHsKICAgIGRvdWJsZSBBW10gPSB7MSwgMiwgMywgNH07CiAgICBCaWcoIEZ1bmMsIEEsIDQgKTsKfQ==