結果
問題 | No.5002 stick xor |
ユーザー |
![]() |
提出日時 | 2018-05-29 18:01:58 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 4 ms / 1,000 ms |
コード長 | 4,445 bytes |
コンパイル時間 | 3,678 ms |
実行使用メモリ | 1,204 KB |
スコア | -249 |
最終ジャッジ日時 | 2018-05-29 18:02:03 |
ジャッジサーバーID (参考情報) |
judge6 / |
純コード判定しない問題か言語 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 32 |
ソースコード
package mainimport ("bufio""fmt""log""math""math/rand""os""strconv""time")// const abcd = "abcdefghijklmnopqrstuvwxyz"// const ABCD = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"var dx = [...]int{0, 1, 1, 1, 0, -1, -1, -1, 0}var dy = [...]int{1, 1, 0, -1, -1, -1, 0, 1, 0}var inf = math.MaxInt64// var mod = 1000000007var next = newScanner()// ---------------------------------------------------------func init() {log.SetFlags(log.Lshortfile)rand.Seed(time.Now().UnixNano())}const white = '0'const black = '1'func solver(in []string, length []int)(rtn [][4]int){log.Println(in)rtn = make([][4]int, 500)for i:=0; i<500; i++ {rtn[i][0] = rand.Intn(35)+1rtn[i][1] = rand.Intn(35)+1rtn[i][2] = rtn[i][0]rtn[i][3] = rtn[i][1]rtn[i][2+rand.Intn(2)]+= length[i] -1}return rtn}func main() {n := next.Int()k := next.Int()l := next.Ints(k)log.Println(n, k, l)a := make([]string, n)for i := 0; i < n; i++ {a[i] = next.String()}rtn := solver(a, l)for i:=0; i<k; i++{fmt.Println(rtn[i][0], rtn[i][1], rtn[i][2], rtn[i][3])}}// ---------------------------------------------------------// Pair is...type Pair struct {a, b int}// Pairs is sorted by []Pair structtype Pairs []Pairfunc (p Pairs) Len() int {return len(p)}func (p Pairs) Swap(i, j int) {p[i], p[j] = p[j], p[i]}func (p Pairs) Less(i, j int) bool {return p[i].b < p[i].b}// func (p Pairs) Less(i, j int) bool {// if p[i].a < p[j].a {// return true// } else if p[i].a == p[j].a {// return p[i].b < p[j].b// }// return false// }// ------int method-------------------------func in(c, a, z int) bool {return c >= a && c < z}func out(c, a, z int) bool {return !in(c, a, z)}func btoi(b bool) int {if b {return 1}return 0}func itob(a int) bool {return a != 0}func max(a ...int) int {r := a[0]for i := 0; i < len(a); i++ {if r < a[i] {r = a[i]}}return r}func min(a ...int) int {r := a[0]for i := 0; i < len(a); i++ {if r > a[i] {r = a[i]}}return r}func sum(a []int) (r int) {for i := range a {r += a[i]}return r}func pro(a []int) int {r := a[0]for i := 1; i < len(a); i++ {r *= a[i]}return r}func fill(a []int, n int) []int {for i := range a {a[i] = n}return a}func minmax(a, b int) (int, int) {if a > b {return b, a}return a, b}// func abs(a int) int {// if a < 0 {// return -a// }// return a// }// 64bit版abs 1.10でエラーは消せるようになるfunc abs(a int) int {mask := a >> 63return (a ^ mask) - mask}func ceil(a, b int) int {if a%b != 0 {return 1}return 0}func printStrings(out []string) {for i := range out {fmt.Print(out[i])if i != len(out)-1 {fmt.Print(" ")}}fmt.Print("\n")}func printInts(out []int) {for i := range out {fmt.Print(out[i])if i != len(out)-1 {fmt.Print(" ")}}fmt.Print("\n")}// ---------- buffered scanner -----------------------------------------type scanner struct {r *bufio.Readerbuf []bytep int}func newScanner() *scanner {rdr := bufio.NewReaderSize(os.Stdin, 10000)return &scanner{r: rdr}}func (s *scanner) next() string {s.pre()start := s.pfor ; s.p < len(s.buf); s.p++ {if s.buf[s.p] == ' ' {break}}result := string(s.buf[start:s.p])s.p++return result}func (s *scanner) Line() string {s.pre()start := s.ps.p = len(s.buf)return string(s.buf[start:])}func (s *scanner) String() string {return s.next()}func (s *scanner) Int() int {v, err := strconv.Atoi(s.next())if err != nil {log.Fatal(err)}return v}func (s *scanner) Ints(n int) []int {r := make([]int, n)for i := 0; i < n; i++ {r[i] = s.Int()}return r}func (s *scanner) Int64() int64 {v, err := strconv.ParseInt(s.next(), 10, 64)if err != nil {log.Fatal(err)}return v}func (s *scanner) Uint64() uint64 {v, err := strconv.ParseUint(s.next(), 10, 64)if err != nil {log.Fatal(err)}return v}func (s *scanner) Float64() float64 {v, err := strconv.ParseFloat(s.next(), 64)if err != nil {log.Fatal(err)}return v}func (s *scanner) pre() {if s.p >= len(s.buf) {s.readLine()s.p = 0}}func (s *scanner) readLine() {s.buf = make([]byte, 0)for {l, p, err := s.r.ReadLine()if err != nil {log.Fatal(err)}s.buf = append(s.buf, l...)if !p {break}}}