範例程式碼 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;
}