カメヲラボ

主にプログラミングとお勉強全般について書いてます

初めてのmalloc

  • 117B

http://acm.pku.edu.cn/JudgeOnline/problem?id=2081
今までに150問以上の問題を解いてきたわけだが、今回初めてmallocなんて使った。freeも使った。
だってランタイムエラーになるねんもん。しゃあない。っちゅうか、毎回答えを計算してるからダメなんだけど。。。id:ushiodaさんは0msで通ってるので、きっとまともなコードだと思う。これと合わせてもちょっと縮まんかなぁ・・・。っちゅうわけでトラバ送信。

a,i,*s;
main(n){
  for(;scanf("%d",&n)+n;a=i=!printf("%d\n",a),free(s))
    for(s=malloc(1e8);s[a+=a<i||s[a-i]?i:-i]=i++<n;);
}

ホントは開放なんてしたくなかった。ちっ。