結果
問題 |
No.1006 Share an Integer
|
ユーザー |
|
提出日時 | 2020-04-16 17:37:51 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 106 ms / 2,000 ms |
コード長 | 736 bytes |
コンパイル時間 | 13,140 ms |
コンパイル使用メモリ | 248,476 KB |
実行使用メモリ | 18,048 KB |
最終ジャッジ日時 | 2024-10-01 21:34:51 |
合計ジャッジ時間 | 13,923 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
package main import ( "bufio" "fmt" "math" "os" "strconv" ) var sc = bufio.NewScanner(os.Stdin) func Scanner() string { sc.Scan() return sc.Text() } func main() { buf := make([]byte, 0) sc.Buffer(buf, 100000007) sc.Split(bufio.ScanWords) x, _ := strconv.Atoi(Scanner()) ans := []int{} box := make([]int, x+1) for i := 1; i < x; i++ { for j := i; j <= x; j += i { box[j]++ } } min := math.MaxInt32 for i := 1; i < x; i++ { num := abs((i - box[i]) - ((x - i) - box[x-i])) if num == min { ans = append(ans, i) } else if num < min { min = num ans = []int{i} } } for _, i := range ans { fmt.Println(i, x-i) } } func abs(n int) int { if n > 0 { return n } else { return n * -1 } }