結果
問題 | No.1006 Share an Integer |
ユーザー | shi-mo |
提出日時 | 2020-09-30 22:24:04 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 343 ms / 2,000 ms |
コード長 | 684 bytes |
コンパイル時間 | 1,902 ms |
コンパイル使用メモリ | 148,728 KB |
実行使用メモリ | 61,520 KB |
最終ジャッジ日時 | 2024-06-22 09:13:10 |
合計ジャッジ時間 | 5,867 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
import std.stdio; import std.conv; import std.array; import std.math; import std.algorithm; void main() { int x; readf("%s\n", &x); int[] f = new int[](x+1); foreach (i; 1..(x+1)) { f[i] = i - 1; } foreach (i; 2..(x+1)) { for (int j = 0; j <= x; j += i) { f[j]--; } } int[][] p = new int[][](x); foreach (a; 1..(x/2 + 1)) { int b = x - a; int score = (f[a]-f[b]).abs; if (null == p[score]) p[score] = []; p[score] ~= a; if (b != a) p[score] ~= b; } int[] ans = p.find!((a) => null != a)[0]; foreach(a; ans.sort()) { writef("%s %s\n", a, (x-a)); } }