結果
問題 |
No.1632 Sorting Integers (GCD of M)
|
ユーザー |
|
提出日時 | 2021-07-30 22:39:08 |
言語 | Kuin (KuinC++ v.2021.9.17) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,661 bytes |
コンパイル時間 | 2,382 ms |
コンパイル使用メモリ | 148,496 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-16 12:42:12 |
合計ジャッジ時間 | 9,668 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 16 WA * 42 TLE * 1 |
ソースコード
func main() var n: int :: cui@inputInt() var a: []int :: #[10]int var sum: int :: 0 var f2: bool :: true var f4: bool :: true for i(1, 9) do a[i] :: cui@inputInt() if(a[i] <> 0) if(i % 2 <> 0) do f2 :: false end if if(i % 4 <> 0) do f4 :: false end if end if if(a[i] = n) const mod: int :: 1000000007 var ans: int :: 0 for(1, n) do ans :* 10 do ans :+ i do ans :% mod end for do cui@print("\{ans}\n") ret end if do sum :+ a[i] end for if(n < 9) var b: []int :: #[n]int var j: int :: 0 for i(1, 9) for(1, a[i]) do b[j] :: i do j :+ 1 end for end for var ans: int :: f(b) while(@permutationNext(b), skip) do ans :: math@gcd(ans, f(b)) end while do cui@print("\{ans}\n") ret end if var ans: int :: 1 if(sum % 9 = 0) do ans :: 9 elif(sum % 3 = 0) do ans :: 3 end if if(f4) do ans :* 4 elif(f2) do ans :* 2 end if do cui@print("\{ans}\n") func f(b: []int): int var res: int :: 0 for i(0, ^b - 1) do res :* 10 do res :+ b[i] end for ret res end func end func func permutationNext(array: []int): bool var left: int :: ^array - 2 while(left >= 0 & array[left] >= array[left + 1]) do left :- 1 end while if(left < 0) ret false end if var right: int :: ^array - 1 while(array[left] >= array[right]) do right :- 1 end while var tmp: int :: array[left] do array[left] :: array[right] do array[right] :: tmp do left :+ 1 do right :: ^array - 1 while(left < right) do tmp :: array[left] do array[left] :: array[right] do array[right] :: tmp do left :+ 1 do right :- 1 end while ret true end func