(Sorry guys for this question, I have just registered so have very liitle idea about the detailed rules.)
My following code, which compiles well on DevC++, MSVC++6.0 and Comeau Online is rejected by the online judge on the account of "Compile Error". Any help please ....
Code: Select all
#include <iostream>
#include <vector>
#include <string>
#include <limits>
#include <fstream>
#include <iterator>
using namespace std;
const int numCount = 9;
vector<int> ProcessInput();
void DefineOrder(const vector<int>& binConf);
vector<int> ProcessInput()
{
vector<int> ret;
while(true)
{
int num;
cin >> num;
if(!cin.good()) return ret;
ret.push_back(num);
if(ret.size() == numCount)
return ret;
}
}
void DefineOrder(const vector<int>& binConf)
{
const int BOTTLECONF=6;
string BottleOrder[BOTTLECONF] = { "BCG","BGC","CBG","CGB","GBC","GCB" };
int binNB[] = { binConf[1] + binConf[2], binConf[4] + binConf[5], binConf[7] + binConf[8] } ;
int binNG[] = { binConf[0] + binConf[2], binConf[3] + binConf[5], binConf[6] + binConf[8] } ;
int binNC[] = { binConf[0] + binConf[1], binConf[3] + binConf[4], binConf[6] + binConf[7] } ;
vector<int> binCalc;
int minSum = numeric_limits<int>::max();
int choice = -1;
for(int i=0; i < BOTTLECONF; ++i)
{
int sum = 0;
for(int j = 0; j < 3; j++)
{
switch(BottleOrder[i][j])
{
case 'B':
sum += binNB[j];
break;
case 'C':
sum += binNC[j];
break;
case 'G':
sum += binNG[j];
break;
}
}
if(sum < minSum)
{
minSum = sum;
choice = i;
}
}
cout << BottleOrder[choice] << " " << minSum << endl;
}
int main()
{
vector<int> ret;
while(true)
{
ret.clear();
ret = ProcessInput();
if(ret.size() != numCount)
exit(0);
DefineOrder(ret);
}
}