カメヲラボ

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

Total Trianglesは人気者

この問題によく出会います。Code GolfはRubyの最短記録が出せなくてうんうん唸ってるうちにPerlゴルファー達にどんどん追い抜かれました^^;PKUでは1163番と3176番が全く同じ問題になってます。GCCならトップ取れるかなーということで。

s['~~'];b,i,n;
main(m,k)
{
  for(;~scanf("%d",&k);i=++i<n?i:!++n)
    m=n?fmax(s[i]=k+fmax(b=s[i],b),m):0;
  printf("%d",m);
}

これより良さそうなアルゴリズムはもう思いつきません。ちょっと変数が多い気がしなくもないので、もう少しスッキリさせたいような無理のような。少しアレンジすると、3176番ではCで最速・GCCで最小メモリを記録することも。