Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
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: 11Giả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 |