とあるコンテストで全探索をかけようとしました。 汚いし重いし間違っているし、最悪です。
int sx1,sy1,dx1,dy1;
int sx2,sy2,dx2,dy2;
int result=-1;
for(sy1=0;sy1<height;sy1++) {
for(sx1=0;sx1<width;sx1++) {
for(dy1=sy1+1;dy1<height;dy1++) {
for(dx1=sx1+1;dx1<width;dx1++) {
int ln,pn;
//ここから
for(sy2=0;sy2+1<sy1;sy2++) {
for(sx2=0;sx2<width;sx2++) {
for(dy2=sy2+1;dy2+1<sy1;dy2++) {
for(dx2=sx2+1;dx2<width;dx2++) {
ln=l[dy1][dx1]-l[sy1][dx1]-l[dy1][sx1]+l[sy1][sx1];
ln+=l[dy2][dx2]-l[sy2][dx2]-l[dy2][sx2]+l[sy2][sx2];
pn=p[dy1][dx1]-p[sy1][dx1]-p[dy1][sx1]+p[sy1][sx1];
pn+=p[dy2][dx2]-p[sy2][dx2]-p[dy2][sx2]+p[sy2][sx2];
if(abs(ln-pn)<=maxDiff && ln+pn>result)result=ln+pn;
}}
}}
//ここまでのような4重ループがあと3個ある
}}
}}
使い方ヒント: 「これは臭う」という行を見付けたら、各行の
をクリックしてマーキングしておきましょう(要Twitter OAuth認証)
まだコメントがありません。最初にコメントを残しませんか?
コメント投稿には、twitter認証が必要です。
Twitter認証