[GO] ABC182

AtCoder Beginner Contest 182 C - To 3 https://atcoder.jp/contests/abc182/tasks/abc182_c

package main
import(
    "fmt"
    "bufio"
    "os"
    "strconv"
    "strings"
)
var rdr=bufio.NewReaderSize(os.Stdin,1024*1024)
func readLine() string {
    buf := []byte{}
    for {
        l, p, e := rdr.ReadLine()
        if e != nil {
            panic(e)
        }
        buf = append(buf, l...)
        if !p {
            break
        }
    }
    return string(buf)
}
func readInts()[]int{
    s:=strings.Split(readLine()," ")
    res:=[]int{}
    for _,v:=range s{
        i,_:=strconv.Atoi(v)
        res=append(res,i)
    }
    return res
}

func main(){
  s:=strings.Split(readLine(),"")
  //Es gibt maximal 18 Ziffern, die nicht verwendet werden, also 18+1=19
  minK:=19
  n:=len(s)
  for bits:=0;bits<(1<<uint64(n));bits++{
    var cp=make([]string,n)
    //Das Original ändert sich, kopieren Sie es also nacheinander
    copy(cp,s)
    k:=0
    sums:=0
    for i:=0;i<n;i++{
      if (bits>>uint64(i))&1==1{
        k++
      }else{
        j,_:=strconv.Atoi(s[i])
        sums+=j
      }
    }
    if sums%3==0 && minK>k{
      minK=k
    }
  }
  if minK==n{
    fmt.Println(-1)
  }else{
    fmt.Println(minK)
  }
}

・ Wenn die Summe jeder Ziffer durch 3 teilbar ist, muss sie ein Vielfaches von 3 sein. ・ Wenn Sie alle Ziffern durchsuchen möchten, die Sie nicht verwenden möchten, verwenden Sie die Bit-Vollsuche. In Anbetracht des oben Gesagten habe ich es gelöst, als ich eine vollständige Bit-Suche durchgeführt habe.

Referenz-URL

Informationen zur Standardeingabe finden Sie unter hier. Eine vollständige Suche finden Sie unter hier. Vielen Dank.

Recommended Posts

ABC168
ABC164
ABC174
ABC175
ABC170
ABC182
ABC153
ABC146 Impressionen
ABC167 WriteUp
AtCoder ABC177
Anfänger ABC154 (Python)
Anfänger ABC156 (Python)
abc154 teilnahmebericht
abc155 teilnahmebericht
AtCoder ABC 174 Python
Anfänger ABC155 (Python)
Anfänger ABC157 (Python)
AtCoder ABC 175 Python
Rückblick auf ABC155
Atcoder ABC115 Vergangene Frage Übung
Löse ABC169 mit Python
ABC147 C --HonestOrUnkind2 [Python]