Esempio n. 1
0
def init_srm_solution(search_term):
  folder_name = make_folder_name(search_term)
  search_term = replace_srm(search_term)

  print ('Initing environment for SRM "%s"...' % folder_name)

  provider = Provider(conf.database_path)

  srms = provider.find_srms(search_term)
  if len(srms) == 0:
    print ('Updating SRM list...')

    provider.update_srm_list()
    srms = provider.find_srms(search_term)

  if len(srms) == 0:
    print ('ERROR: Sorry, I couldn\'t find the SRM you\'re looking for.')
    return 1

  srm = None
  if len(srms) == 1:
    srm = srms[0]
  else:
    while srm == None:
      for i in range(0, len(srms)):
        print (str(i) + ') "' + srms[i].title + '"')
      number = raw_input('More than one SRM was found. Which one were you looking for?')
      
      try:
        srm = srms[int(number)]
      except:
        pass

  srm.problems = provider.get_srm_problems(srm)

  if srm.problems == None or len(srm.problems) == 0:
    print ('Retreiving SRM data...')
    
    conn = create_conn_and_login()
    conn.fill_whole_srm(srm)
    conn.close()

    provider.insert_srm_data(srm)

  # create folder & associate folder
  os.makedirs(folder_name)
  provider.associate_folder(folder_name, srm)
  provider.close()

  # generate harness
  generator = HarnessGenerator(conf)
  generator.generate(os.path.join(folder_name, 'harness.cpp'), 'cpp', srm, 'solution.cpp')

  # create a solution.cpp file
  generator = SolutionGenerator(conf)
  generator.generate(os.path.join(folder_name, 'solution.cpp'), 'cpp', srm)

  # finito
  print ('Solution ready at %s/solution.cpp. Good luck.' % folder_name)
  return 0