typedef array< double , 2 > P;
double func( P p) ;
pair< double , P> hillClimb( P start) {
pair< double , P> cur( func( start) , start) ;
for ( double jmp = 1e9 ; jmp > 1e-20 ; jmp / = 2 ) {
rep( j,0 ,100 ) rep( dx,- 1 ,2 ) rep( dy,- 1 ,2 ) {
P p = cur.second ;
p[ 0 ] + = dx* jmp;
p[ 1 ] + = dy* jmp;
cur = min( cur, make_pair( func( p) , p) ) ;
}
}
return cur;
}
dHlwZWRlZiBhcnJheTxkb3VibGUsIDI+IFA7CmRvdWJsZSBmdW5jKFAgcCk7CnBhaXI8ZG91YmxlLCBQPiBoaWxsQ2xpbWIoUCBzdGFydCkgewogICAgcGFpcjxkb3VibGUsIFA+IGN1cihmdW5jKHN0YXJ0KSwgc3RhcnQpOwogICAgZm9yIChkb3VibGUgam1wID0gMWU5OyBqbXAgPiAxZS0yMDsgam1wIC89IDIpIHsKICAgICAgICByZXAoaiwwLDEwMCkgcmVwKGR4LC0xLDIpIHJlcChkeSwtMSwyKSB7CiAgICAgICAgICAgIFAgcCA9IGN1ci5zZWNvbmQ7CiAgICAgICAgICAgIHBbMF0gKz0gZHgqam1wOwogICAgICAgICAgICBwWzFdICs9IGR5KmptcDsKICAgICAgICAgICAgY3VyID0gbWluKGN1ciwgbWFrZV9wYWlyKGZ1bmMocCksIHApKTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gY3VyOwp9Cg==
compilation info
prog.cpp:1:9: error: ‘array’ does not name a type
typedef array<double, 2> P;
^~~~~
prog.cpp:2:13: error: ‘P’ was not declared in this scope
double func(P p);
^
prog.cpp:3:1: error: ‘pair’ does not name a type
pair<double, P> hillClimb(P start) {
^~~~
stdout