読者です 読者をやめる 読者になる 読者になる

君はまるで砂漠に咲く、一輪の花。

僕はその花に引き寄せられる蝶。

CROC 2016 - Qualification

はい。
http://codeforces.com/contest/644

A. Parliament of Berland

ざっくりと大意

・a * bの座席に1からnを偶数同士、奇数同士で隣接しないよう配置できるか??

Python2

n,a,b=map(int,raw_input().split())
k=[i for i in range(1,n+1) if i%2==0]
m=[i for i in range(1,n+1) if i%2]
ans=chk=0
if n>a*b:
    print -1
else:
    for i in range(a):
        for j in range(b):
            if (i+j)%2==0:
                if len(m):
                    print m.pop(0),
                else:
                    print 0,
            elif (i+j)%2:
                if len(k):
                    print k.pop(0),
                else:
                    print 0,
        print

偶数、奇数を交互に出していけば良いのですが、幅が偶数だと調整が必要になる。例えば1 2 3 4の次の行を5 6 7 8にすると縦に偶奇が一致するので出来ない。6 5 8 7を出力するのにもnを超えないようにしたり調節が必要。といった管理が面倒くさいのでリストを使いました。