範例程式碼 uva11633
//uva11633
#include<iostream>
#include <algorithm>
#define Infinity 10000000
using namespace std;
int main() {
int n,a,b;
int num[1024];
while(cin>>n) {
if(n==0) break;
cin>>a>>b;
int Max = 0;
for(int i=0; i<n; i++) {
cin>>num[i];
num[i]=num[i]*6;
Max = max(Max, num[i]);
}
int Min = 10000000;
for(int i=0; i<n; i++) {
for(int j=1; j<=3; j++) {
int s=num[i]/j;
int x=0,y=0;
if(s*3 < Max) continue;
for(int k=0; k<n; k++) {
if(num[k]%s == 0) {
if(num[k]==s) y = y + 1;
else if(num[k]==2*s) y = y + 2;
else y = y + 3;
}
else if(s*1 > num[k]){
x = x + s-num[k];
y = y + 1 ;
}
else if (s*2 > num[k]){
x = x + s*2-num[k];
y = y + 2 ;
}
else if (s*3 > num[k]){
x = x + s*3-num[k];
y = y + 3 ;
}
}
if(a*x+6*b*y < Min)
Min = a*x+6*b*y;
}
}
if(Min%6 == 0)
cout<<Min/6<<endl;
else{
if(Min%3 == 0){
cout<< (Min/3) << " / " <<2<<endl;
}
else if(Min%2 == 0){
cout<< (Min/2) << " / " <<3<<endl;
}
else{
cout<< (Min/6) << " / " <<6<<endl;
}
}
}
return 0;
}