Esempio n. 1
0
bool
ContestManager::UpdateIdle(bool exhaustive)
{
    bool retval = false;

    switch (contest) {
    case Contest::OLC_SPRINT:
        retval = RunContest(olc_sprint, stats.result[0],
                            stats.solution[0], exhaustive);
        break;

    case Contest::OLC_FAI:
        retval = RunContest(olc_fai, stats.result[0],
                            stats.solution[0], exhaustive);
        break;

    case Contest::OLC_CLASSIC:
        retval = RunContest(olc_classic, stats.result[0],
                            stats.solution[0], exhaustive);
        break;

    case Contest::OLC_LEAGUE:
        retval = RunContest(olc_classic, stats.result[1],
                            stats.solution[1], exhaustive);

        olc_league.Feed(stats.solution[1]);

        retval |= RunContest(olc_league, stats.result[0],
                             stats.solution[0], exhaustive);
        break;

    case Contest::OLC_PLUS:
        retval = RunContest(olc_classic, stats.result[0],
                            stats.solution[0], exhaustive);

        retval |= RunContest(olc_fai, stats.result[1],
                             stats.solution[1], exhaustive);

        if (retval) {
            olc_plus.Feed(stats.result[0], stats.solution[0],
                          stats.result[1], stats.solution[1]);

            RunContest(olc_plus, stats.result[2],
                       stats.solution[2], exhaustive);
        }

        break;

    case Contest::DMST:
        retval = RunContest(dmst_quad, stats.result[0],
                            stats.solution[0], exhaustive);
        break;

    case Contest::XCONTEST:
        retval = RunContest(xcontest_free, stats.result[0],
                            stats.solution[0], exhaustive);
        retval |= RunContest(xcontest_triangle, stats.result[1],
                             stats.solution[1], exhaustive);
        break;

    case Contest::DHV_XC:
        retval = RunContest(dhv_xc_free, stats.result[0],
                            stats.solution[0], exhaustive);
        retval |= RunContest(dhv_xc_triangle, stats.result[1],
                             stats.solution[1], exhaustive);
        break;

    case Contest::SIS_AT:
        retval = RunContest(sis_at, stats.result[0],
                            stats.solution[0], exhaustive);
        break;

    case Contest::NET_COUPE:
        retval = RunContest(net_coupe, stats.result[0],
                            stats.solution[0], exhaustive);
        break;

    };

    return retval;
}
Esempio n. 2
0
bool 
ContestManager::UpdateIdle(bool exhaustive)
{
  bool retval = false;

  switch (contest) {
  case OLC_Sprint:
    retval = RunContest(olc_sprint, stats.result[0],
                         stats.solution[0], exhaustive);
    break;

  case OLC_FAI:
    retval = RunContest(olc_fai, stats.result[0],
                         stats.solution[0], exhaustive);
    break;

  case OLC_Classic:
    retval = RunContest(olc_classic, stats.result[0],
                         stats.solution[0], exhaustive);
    break;

  case OLC_League:
    retval = RunContest(olc_classic, stats.result[1],
                         stats.solution[1], exhaustive);

    olc_league.get_solution_classic() = stats.solution[1];

    retval |= RunContest(olc_league, stats.result[0],
                          stats.solution[0], exhaustive);
    break;

  case OLC_Plus:
    retval = RunContest(olc_classic, stats.result[0],
                         stats.solution[0], exhaustive);

    olc_plus.get_result_classic() = stats.result[0];
    olc_plus.get_solution_classic() = stats.solution[0];

    retval |= RunContest(olc_fai, stats.result[1],
                          stats.solution[1], exhaustive);

    olc_plus.get_result_fai() = stats.result[1];
    olc_plus.get_solution_fai() = stats.solution[1];

    if (retval) 
      RunContest(olc_plus, stats.result[2],
                  stats.solution[2], exhaustive);

    break;

  case OLC_XContest:
    retval = RunContest(olc_xcontest_free, stats.result[0],
                         stats.solution[0], exhaustive);
    retval |= RunContest(olc_xcontest_triangle, stats.result[1],
                          stats.solution[1], exhaustive);
    break;

  case OLC_DHVXC:
    retval = RunContest(olc_dhvxc_free, stats.result[0],
                         stats.solution[0], exhaustive);
    retval |= RunContest(olc_dhvxc_triangle, stats.result[1],
                          stats.solution[1], exhaustive);
    break;

  case OLC_SISAT:
    retval = RunContest(olc_sisat, stats.result[0],
                         stats.solution[0], exhaustive);
    break;
  };

  return retval;
}