← Home
```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)
}
```