結果

問題 No.3435 [Cherry 8th Tune *] 何回 LOVE SONG を書き換えただろうか?
コンテスト
ユーザー ジュ・ビオレ・グレイス
提出日時 2026-01-23 23:32:49
言語 D
(dmd 2.111.0)
結果
AC  
実行時間 1,001 ms / 3,000 ms
コード長 1,002 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,263 ms
コンパイル使用メモリ 86,312 KB
実行使用メモリ 96,736 KB
最終ジャッジ日時 2026-01-23 23:33:21
合計ジャッジ時間 30,442 ms
ジャッジサーバーID
(参考情報)
judge5 / judge6
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 48
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import std.stdio, std.algorithm, std.array, std.conv, std.typecons;

alias Set = bool[3 * 10^^5];

void main() {
	auto A = readln[0 .. $-1];
	long[][] d;
	foreach (_; 0 .. A.length) {
		d ~= readln.split.to!(long[]);
	}
	auto NM = readln.split.to!(long[]);
	auto N = NM[0], M = NM[1];
	long[][] S;
	foreach (_; 0 .. N) {
		S ~= readln[0 .. $-1].map!(c => countUntil(A, c)).array;
	}
	
	// sum[a][k] =  sum_{j = 1}^N d(A[a], S[j][k])
	long[][] sum;
	long[][] times;
	sum.length = A.length;
	times.length = A.length;
	foreach (a; 0 .. A.length) times[a].length = sum[a].length = M;
	foreach (j; 0 .. N) {
		foreach (k; 0 .. M) {
			times[S[j][k]][k] += 1;
		}
	}
	
	foreach (a; 0 .. A.length) {
		foreach (k; 0 .. M) {
			foreach (b; 0 .. A.length) sum[a][k] += times[b][k] * d[a][b];
		}
		/+foreach (k; 0 .. M) {
			long val;
			foreach (j; 0 .. N) val += d[a][S[j][k]];
			sum[a] ~= val;
		}+/
	}
	
	foreach (i; 0 .. N) {
		long val;
		foreach (k; 0 .. M) val += sum[S[i][k]][k];
		writeln(val);
	}
}
0