つけじょにーのすぱげていコード

主に、競技プログラミング、セキュリティのお勉強の際に書いたすぱげていコードを書き込みます

AOJ 0076: Treasure HunterⅡ

[苦手問題]
自虐したくなるくらい頭働かなくて、泣きそうです
結局解くにいたりませんでしたが、以前Acceptコードを求められなかったので、今回復習も兼ねて調べ、求めました
今回は距離が1なので、単位法線ベクトル*1の距離分だけ進めばいいことになります
コードが汚くてお恥ずかしい限りですが・・・

#include <bits/stdc++.h>
using namespace std;
typedef complex<double> P;

int n;
P s = P(1, 0);

void exec() {
    double len = abs(s);
    P normalLine = s * P(0, 1);
    normalLine = P(normalLine.real()/len, normalLine.imag()/len);
    s = P(s.real()+normalLine.real(), s.imag()+normalLine.imag());
}

void solve() {
    for(int r = 0; r < n; r++) {
        exec();
    }
}

int main(void) {
    while(cin >> n, n != -1) {
        n--; //処理を行う回数と考える
        solve();
        printf("%.2f\n%.2f\n", s.real(), s.imag());
        s = P(1, 0);
    }
    return(0);
}

幾何も練習しないとマズイな・・・
数学の知識がどんどん抜け落ちてってますからね(泣)
明日、もう一回解いてみますか