CODE FESTIVAL 2017 Final,F: Distribute Numbers

https://cf17-final-open.contest.atcoder.jp/tasks/cf17_final_f

なんでこれ結構解かれているんだろう…

editorialそのままです。違う構成法を考えてハマっていたので、いろいろ試してみようくらいしかこの問題から学べないと思うんですがね…

あと見通しのいい図がかけるかどうかとか?

でもこういう問題は本当に思いつきませんね…

int K = 38, N = K * K - K + 1, P = K - 1;

void solve() {
	cout << N << " " << K << "\n";
	rep(i, 0, P + 1) {
		cout << N << " ";
		rep(j, 0, P) cout << i * P + j + 1 << " ";
		cout << "\n";
	}
	rep(i, 0, P) {
		rep(j, 0, P) {
			rep(k, 0, P) {
				cout << k * P + (j + i * k) % P + 1 << " ";
			}
			cout << P * P + i + 1 << "\n";
		}
	}
}