示例#1
0
def addProblem(request, contest_id):
	U = request.user
	try:
		U = JudgeUser.objects.get(username = U.username)
	except:
		U = None

	if U is None:
		return HttpResponseRedirect(reverse('login_page'))


	if request.method == 'POST':
		if U.is_authenticated():
			prob_id = request.POST["prob_id"]
			prob_name = request.POST["prob_name"]
			statement = request.POST["statement"]
			input_data = request.POST["input"]
			output_data = request.POST["output"]
			sample_input = request.POST["Sinput"]
			sample_output = request.POST["Soutput"]
			contest_name = request.POST["contest_name"]
			blogpost = BlogPost(heading = prob_id, addedby = U, timestamp = timezone.now())
			blogpost.save()

			contest = Contest.objects.get(pk = contest_name)

			#Created New Problem

			newProblem = Problem(
							name = prob_name, 
							p_id = prob_id, 
							statement = statement, 
							setter = U, 
							contest = contest, 
							sample_input = sample_input, sample_output = sample_output,
							comments = blogpost
						)
			newProblem.save()

			#Save Correct input and output
			Jury.createIO(newProblem, input_data, output_data) 
		else:
			return HttpResponseRedirect(reverse('login_page'))	

	context = {
		'user' : U,
		'contest_name' : contest_id
	}
	return render(request, 'add_problem.html', context)
示例#2
0
def addProblem(request, contest_id):
    U = request.user
    try:
        U = JudgeUser.objects.get(username=U.username)
    except:
        U = None

    if U is None:
        return HttpResponseRedirect(reverse('login_page'))

    if request.method == 'POST':
        if U.is_authenticated():
            prob_id = request.POST["prob_id"]
            prob_name = request.POST["prob_name"]
            statement = request.POST["statement"]
            input_data = request.POST["input"]
            output_data = request.POST["output"]
            sample_input = request.POST["Sinput"]
            sample_output = request.POST["Soutput"]
            contest_name = request.POST["contest_name"]
            blogpost = BlogPost(heading=prob_id,
                                addedby=U,
                                timestamp=timezone.now())
            blogpost.save()

            contest = Contest.objects.get(pk=contest_name)

            #Created New Problem

            newProblem = Problem(name=prob_name,
                                 p_id=prob_id,
                                 statement=statement,
                                 setter=U,
                                 contest=contest,
                                 sample_input=sample_input,
                                 sample_output=sample_output,
                                 comments=blogpost)
            newProblem.save()

            #Save Correct input and output
            Jury.createIO(newProblem, input_data, output_data)
        else:
            return HttpResponseRedirect(reverse('login_page'))

    context = {'user': U, 'contest_name': contest_id}
    return render(request, 'add_problem.html', context)
示例#3
0
def getResult(request, prob_id):
    print prob_id
    problem = Problem.objects.get(pk=prob_id)
    print problem.p_id
    Str = request.POST["code_text"]
    solver = request.user
    solver = JudgeUser.objects.get(username=solver.username)

    try:
        sol_obj = (solver.solution_list).get(problem=problem)
    except:
        sol_obj = None

    if sol_obj is None:
        bug = "1"
        sol_obj = Solution(code=Str,
                           problem=problem,
                           submission_time=datetime.datetime.now())

    else:
        bug = "2"
        print sol_obj.code
        sol_obj.code = Str
        sol_obj.submission_time = datetime.datetime.now()

    sol_obj.verdict = Jury.getVerdict(sol_obj)
    print "BUFF"
    if sol_obj.verdict == "Success":
        solver.AC_Count += 1
    if sol_obj.verdict == "Compilation Error":
        solver.CE_Count += 1
    if sol_obj.verdict == "Time Limit Exceeded":
        solver.TLE_Count += 1
    if sol_obj.verdict == "Wrong Answer":
        solver.WA_Count += 1
    if sol_obj.verdict == "Runtime Error":
        solver.RE_Count += 1

    solver.save()

    if sol_obj.verdict == "Success":
        sol_obj.solved = 1
    elif sol_obj.solved != 1:
        sol_obj.penalty = sol_obj.penalty + 1

    sol_obj.save()
    solver.solution_list.add(Solution.objects.last())

    context = {
        'problem': problem,
        'sol_obj': sol_obj,
        'solver': solver,
        'bug': bug
    }
    return render(request, 'get_result.html', context)
示例#4
0
def getResult(request, prob_id):
	print prob_id
	problem = Problem.objects.get(pk = prob_id)
	print problem.p_id 
	Str = request.POST["code_text"]
	solver = request.user
	solver = JudgeUser.objects.get(username = solver.username)

	try:
		sol_obj = (solver.solution_list).get(problem = problem)
	except:
		sol_obj = None


	if sol_obj is None:
		bug = "1"
		sol_obj = Solution(code = Str, problem = problem, submission_time = datetime.datetime.now())
		
	else:
		bug = "2"
		print sol_obj.code
		sol_obj.code = Str
		sol_obj.submission_time = datetime.datetime.now()

	sol_obj.verdict = Jury.getVerdict(sol_obj)
	print "BUFF"
	if sol_obj.verdict == "Success":
		solver.AC_Count +=1;
	if sol_obj.verdict == "Compilation Error":
		solver.CE_Count +=1
	if sol_obj.verdict == "Time Limit Exceeded":
		solver.TLE_Count +=1
	if sol_obj.verdict == "Wrong Answer":
		solver.WA_Count +=1
	if sol_obj.verdict == "Runtime Error":
		solver.RE_Count +=1
	
	solver.save()

	if sol_obj.verdict == "Success":
		sol_obj.solved = 1
	elif sol_obj.solved != 1:
		sol_obj.penalty = sol_obj.penalty + 1

	sol_obj.save()
	solver.solution_list.add(Solution.objects.last())

	context = {
		'problem' : problem,
		'sol_obj' : sol_obj,
		'solver' : solver,
		'bug' : bug
	}
	return render(request, 'get_result.html', context)