結果
| 問題 |
No.2428 Returning Shuffle
|
| ユーザー |
|
| 提出日時 | 2023-08-18 22:11:00 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 712 bytes |
| コンパイル時間 | 4,252 ms |
| コンパイル使用メモリ | 175,104 KB |
| 実行使用メモリ | 42,572 KB |
| 最終ジャッジ日時 | 2024-11-28 07:37:11 |
| 合計ジャッジ時間 | 8,042 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 18 WA * 5 |
コンパイルメッセージ
/home/linuxbrew/.linuxbrew/opt/dmd/include/dlang/dmd/std/numeric.d(2999): Warning: cannot inline function `std.numeric.gcdImpl!ulong.gcdImpl`
ソースコード
import std;
void main(){
auto input = readln.chomp.split.to!(int[]);
int n = input[0];
int m = input[1];
auto s = new int[n];
for(auto i = 0; i < n; i++){
s[i] = i;
}
for(auto i = 0; i < m; i++){
input = readln.chomp.split.to!(int[]);
int prev = s[input[$ - 1] - 1];
for(auto j = 1; j < input.length; j++){
auto t = s[input[j] - 1];
s[input[j] - 1] = prev;
prev = t;
}
}
ulong result = 1;
auto closed = new bool[n];
for(auto i = 0; i < n; i++){
if(closed[i]) continue;
auto j = i;
ulong k = 0L;
while(!closed[j]){
closed[j] = true;
j = s[j];
k++;
}
result = result.lcm(k);
}
writeln(result % 998244353);
}