モンテカルロ法でいろいろやりましたが結局こんなんが出来ました。
メモリ解放は使わず、p[]に上書きすることでなんとかしているつもりです。
がめちゃくちゃ演算速度が遅いのなぜでしょう・・しかもモンテは精度悪すぎ。