結果
| 問題 |
No.2563 色ごとのグループ
|
| コンテスト | |
| ユーザー |
ID 21712
|
| 提出日時 | 2024-11-12 20:54:19 |
| 言語 | Go (1.23.4) |
| 結果 |
AC
|
| 実行時間 | 444 ms / 2,000 ms |
| コード長 | 687 bytes |
| コンパイル時間 | 13,412 ms |
| コンパイル使用メモリ | 238,192 KB |
| 実行使用メモリ | 28,288 KB |
| 最終ジャッジ日時 | 2024-11-12 20:54:40 |
| 合計ジャッジ時間 | 21,201 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 35 |
ソースコード
package main
import . "fmt"
import . "os"
import bf "bufio"
func main() {
rd:=bf.NewReader(Stdin)
var n,m int
Fscan(rd,&n,&m)
cs:=make([]int,n)
for i:=range cs {
Fscan(rd,&cs[i])
}
t:=make([][]int,n)
for ;m>0;m-- {
var u,v int
Fscan(rd,&u,&v)
u--
v--
t[u]=append(t[u],v)
t[v]=append(t[v],u)
}
visited:=make([]bool,n)
g:=make(map[int]int)
for i,c:=range cs {
if visited[i] {
continue
}
g[c]++
visited[i]=true
p:=t[i][:]
for len(p)>0 {
e:=p[len(p)-1]
p=p[:len(p)-1]
if cs[e]!=c||visited[e] {
continue
}
visited[e]=true
p=append(p,t[e]...)
}
}
var ans int
for _,c:=range g {
if c>0 {
ans+=c-1
}
}
Println(ans)
}
ID 21712