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(),"")
  //Il y a un maximum de 18 chiffres qui ne sont pas utilisés, donc 18+1=19
  minK:=19
  n:=len(s)
  for bits:=0;bits<(1<<uint64(n));bits++{
    var cp=make([]string,n)
    //L'original va changer, alors copiez-le un par un
    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)
  }
}

・ Si la somme de chaque chiffre est divisible par 3, elle doit être un multiple de 3. ・ Si vous souhaitez rechercher tous les chiffres que vous ne souhaitez pas utiliser, utilisez la recherche par bits. Compte tenu de ce qui précède, je l'ai résolu en effectuant une recherche complète.

URL de référence

Pour une entrée standard, reportez-vous à ici, et pour une recherche complète de bits, reportez-vous à ici. Merci beaucoup.

Recommended Posts

ABC168
ABC164
ABC174
ABC175
ABC170
ABC182
ABC153
ABC146 Impressions
ABC167 WriteUp
AtCoder ABC177
Débutant ABC154 (Python)
Débutant ABC156 (Python)
rapport de participation abc154
rapport de participation abc155
AtCoder ABC 174 Python
Débutant ABC155 (Python)
Débutant ABC157 (Python)
AtCoder ABC 175 Python
Retour sur ABC155
Atcoder ABC115 Exercice de questions passées
Résolvez ABC169 avec Python
ABC147 C --HonestOrUnkind2 [Python]