```go
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var n int
var c1, c2 int64
fmt.Fscan(reader, &n, &c1, &c2)
var s string
fmt.Fscan(reader, &s)
m := 0
for i := 0; i < n; i++ {
if s[i] == '1' {
m++
}
}
ans := int64(1<<63 - 1)
for k := 1; k <= m; k++ {
remaining := int64(n - k)
kk := int64(k)
q := remaining / kk
r := remaining % kk
cost := kk*c1 + c2*(r*(q+1)*(q+1) + (kk-r)*q*q)
if cost < ans {
ans = cost
}
}
fmt.Println(ans)
}
```