Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

COST - Lại 1 bài phân việc




Có N chuyên viên lập trình và M công việc. Nếu chuyên viên thứ i mà làm j công việc thì sẽ tốn chi phí là C[i] * j * j .
Người ta cho bạn N xâu ký tự , ký tự thứ j của xâu i là 'Y' tức là chuyên viên thứ i có thể làm được công việc thứ j và 'N' trong trường hợp ngược lại. Bạn hãy lập trình tính xem tổng chi phí phải trả nhỏ nhất là bao nhiêu ?

Input

Dòng 1 : số nguyên dương N ( 0 < N < 51 ) .
Dòng 2 : N số nguyên dương là C[1] , ... , C[N] ( 0 < C[i] < 50000 ) . N dòng tiếp theo , mỗi dòng gồm 1 xâu M ký tự mô tả như ở trên. ( 0 < M < 41 ) .

Output

Gồm 1 số nguyên duy nhất là chi phí nhỏ nhất. Trong trường hợp không thể hoàn thành M công việc này được thì ghi ra -1 .

Ví dụ

Input:
3
2 3 4
YYN
YNY
NNN
Output:
11
Giải thích test ví dụ : Người thứ 1 làm 2 công việc là 1 và 2 mất chi phí là 2 * 2 * 2 = 8 , người thứ 2 làm công việc 3 mất chi phí là 3 . Tổng chi phí sẽ là 11 .

Được gửi lên bởi:Nguyen Minh Hieu
Ngày:2007-09-20
Thời gian chạy:0.100s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ERL GOSU JS-RHINO NODEJS PERL6 PYPY RUST SED VB.NET

hide comments
2017-01-14 13:07:44
Code pascal AC: http://shink.in/8Pi6q
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.