Submission #2482812


Source Code Expand

package main

import "fmt"

func main() {
  var n int
  var k int
  fmt.Scan(&n, &k)
  k2 := k*2
  // 0 ≦ x,y ≦ 2K に圧縮
  squares := make([][]int, k2)
  for i := range squares {
    squares[i] = make([]int, k2)
  }
  for i := 0; i < n; i++ {
    var x int
    var y int
    var color string
    fmt.Scan(&x, &y, &color)
    // 'W'はY方向にKずらした'B'と同値
    if color == "W" {
      y += k
    }
    squares[x % k2][y % k2]++ 
  }
  // 計算量削減のために累積和を事前算出
  for i := 0; i < k2; i++ {
    for j := 1; j < k2; j++ {
      squares[i][j] += squares[i][j-1]
    }      
  }
  for j := 0; j < k2; j++ {
    for i := 1; i < k2; i++ {
      squares[i][j] += squares[i-1][j]
    }
  }  
  max_ := 0
  end := k2-1
  for i := 0; i < k; i++ {
    for j := 0; j < k; j++ {
      // ex) k = 2
      //      ■ □ □ ■ 
      //  j+k □ ■ ■ □
      //      □ ■ ■ □
      //    j ■ □ □ ■
      //      i   i+k
      cnt :=
        (squares[i][j]) +
        (squares[end][j] - squares[i+k][j]) +
        (squares[i+k][j+k] - squares[i+k][j] - squares[i][j+k] + squares[i][j]) +
        (squares[i][end] - squares[i][j+k]) +
        (squares[end][end] - squares[end][j+k] - squares[i+k][end] + squares[i+k][j+k])
      max_ = max(max(cnt, n - cnt), max_)
    }
  }  
  fmt.Print(max_)
}

func max(a int, b int) int {
  if a > b {
    return a
  } else {
    return b
  }
}

Submission Info

Submission Time
Task D - Checker
User fink
Language Go (1.6)
Score 500
Code Size 1501 Byte
Status AC
Exec Time 1556 ms
Memory 45312 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 31
Set Name Test Cases
Sample 0_000.txt, 0_001.txt, 0_002.txt
All 0_000.txt, 0_001.txt, 0_002.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt, 1_021.txt, 1_022.txt, 1_023.txt, 1_024.txt, 1_025.txt, 1_026.txt, 1_027.txt, 1_028.txt, 1_029.txt, 1_030.txt
Case Name Status Exec Time Memory
0_000.txt AC 1 ms 512 KB
0_001.txt AC 114 ms 33792 KB
0_002.txt AC 1 ms 512 KB
1_003.txt AC 112 ms 33792 KB
1_004.txt AC 1 ms 512 KB
1_005.txt AC 1 ms 512 KB
1_006.txt AC 1 ms 512 KB
1_007.txt AC 2 ms 896 KB
1_008.txt AC 112 ms 33920 KB
1_009.txt AC 16 ms 640 KB
1_010.txt AC 16 ms 640 KB
1_011.txt AC 16 ms 640 KB
1_012.txt AC 18 ms 1024 KB
1_013.txt AC 128 ms 33920 KB
1_014.txt AC 1428 ms 5504 KB
1_015.txt AC 1431 ms 5504 KB
1_016.txt AC 1427 ms 5504 KB
1_017.txt AC 1442 ms 5504 KB
1_018.txt AC 1556 ms 45312 KB
1_019.txt AC 65 ms 1792 KB
1_020.txt AC 65 ms 1792 KB
1_021.txt AC 65 ms 1792 KB
1_022.txt AC 65 ms 1792 KB
1_023.txt AC 65 ms 1792 KB
1_024.txt AC 65 ms 1792 KB
1_025.txt AC 975 ms 5504 KB
1_026.txt AC 1318 ms 43648 KB
1_027.txt AC 973 ms 5504 KB
1_028.txt AC 1079 ms 43776 KB
1_029.txt AC 982 ms 5504 KB
1_030.txt AC 1090 ms 43648 KB