結果
問題 |
No.944 煎っぞ!
|
ユーザー |
![]() |
提出日時 | 2020-03-22 05:38:04 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 18 ms / 3,000 ms |
コード長 | 805 bytes |
コンパイル時間 | 1,993 ms |
コンパイル使用メモリ | 177,012 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-22 05:47:46 |
合計ジャッジ時間 | 3,692 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 35 |
ソースコード
import std; int calc(int[] a) { int sum = a.sum; auto acc = a.cumulativeFold!"a + b".array.assumeSorted; for (int i = 0; i < acc.length; i++) { if (sum % acc[i] == 0) { bool ok = true; for (int j = acc[i] * 2; j < sum; j += acc[i]) { if (!acc.canFind(j)) { ok = false; break; } } if (ok) return sum / acc[i]; } } return 1; } void main() { readint; auto a = readints; writeln(calc(a)); } void scan(T...)(ref T a) { string[] ss = readln.split; foreach (i, t; T) a[i] = ss[i].to!t; } T read(T)() { return readln.chomp.to!T; } T[] reads(T)() { return readln.split.to!(T[]); } alias readint = read!int; alias readints = reads!int;