提出 #18780911
ソースコード 拡げる
package main
import (
"bufio"
"fmt"
"os"
)
var r = bufio.NewReader(os.Stdin)
var N, M int
var MAT [][]rune
func main() {
N, M = ni(), ni()
MAT = make([][]rune, N)
for i := range MAT {
MAT[i] = make([]rune, N)
for j := range MAT[i] {
MAT[i][j] = 'N'
}
}
solve()
}
func solve() {
for i := 0; i < M; i++ {
a := ni()
b := ni() - 1
switch a {
case 1:
c := ni() - 1
follow(b, c)
case 2:
followBackAll(b)
case 3:
followFollow(b)
}
}
for i := range MAT {
fmt.Println(string(MAT[i]))
}
}
func follow(a, b int) {
MAT[a][b] = 'Y'
// log.Printf("%d followed %d", a+1, b+1)
}
func followBackAll(a int) {
for _, b := range getFollower(a) {
follow(a, b)
}
}
func followFollow(a int) {
for _, e1 := range getFollows(a) {
for _, e2 := range getFollows(e1) {
if e2 == a {
continue
}
follow(a, e2)
}
}
}
// nをフォローしている人のidxを返す
func getFollower(n int) (ret []int) {
for i := 0; i < N; i++ {
if MAT[i][n] == 'Y' {
ret = append(ret, i)
}
}
return
}
// nがフォローしている人のidxを返す
func getFollows(n int) (ret []int) {
for i := 0; i < N; i++ {
if MAT[n][i] == 'Y' {
ret = append(ret, i)
}
}
return
}
func ni() int { var n int; fmt.Fscan(r, &n); return n }
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - SNS のログ |
| ユーザ | soye |
| 言語 | Go (1.14.1) |
| 得点 | 7 |
| コード長 | 1376 Byte |
| 結果 | AC |
| 実行時間 | 9 ms |
| メモリ | 3192 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 7 / 7 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | example_01.txt |
| All | example_01.txt, subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt, subtask_01_18.txt, subtask_01_19.txt, subtask_01_20.txt, subtask_01_21.txt, subtask_01_22.txt, subtask_01_23.txt, subtask_01_24.txt, subtask_01_25.txt, subtask_01_26.txt, subtask_01_27.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| example_01.txt | AC | 9 ms | 1824 KiB |
| subtask_01_01.txt | AC | 2 ms | 1824 KiB |
| subtask_01_02.txt | AC | 2 ms | 1832 KiB |
| subtask_01_03.txt | AC | 2 ms | 1880 KiB |
| subtask_01_04.txt | AC | 4 ms | 2000 KiB |
| subtask_01_05.txt | AC | 3 ms | 1896 KiB |
| subtask_01_06.txt | AC | 3 ms | 1892 KiB |
| subtask_01_07.txt | AC | 5 ms | 2364 KiB |
| subtask_01_08.txt | AC | 2 ms | 1896 KiB |
| subtask_01_09.txt | AC | 2 ms | 1820 KiB |
| subtask_01_10.txt | AC | 6 ms | 1880 KiB |
| subtask_01_11.txt | AC | 2 ms | 1820 KiB |
| subtask_01_12.txt | AC | 2 ms | 1900 KiB |
| subtask_01_13.txt | AC | 3 ms | 1872 KiB |
| subtask_01_14.txt | AC | 2 ms | 1884 KiB |
| subtask_01_15.txt | AC | 2 ms | 1856 KiB |
| subtask_01_16.txt | AC | 3 ms | 1904 KiB |
| subtask_01_17.txt | AC | 2 ms | 1880 KiB |
| subtask_01_18.txt | AC | 3 ms | 1892 KiB |
| subtask_01_19.txt | AC | 2 ms | 2016 KiB |
| subtask_01_20.txt | AC | 3 ms | 1900 KiB |
| subtask_01_21.txt | AC | 3 ms | 2444 KiB |
| subtask_01_22.txt | AC | 4 ms | 1904 KiB |
| subtask_01_23.txt | AC | 3 ms | 2580 KiB |
| subtask_01_24.txt | AC | 6 ms | 1916 KiB |
| subtask_01_25.txt | AC | 5 ms | 3192 KiB |
| subtask_01_26.txt | AC | 4 ms | 1964 KiB |
| subtask_01_27.txt | AC | 4 ms | 2224 KiB |