Submission #1477073


Source Code Expand

def scc_puzzle():
	n,m = map(int, raw_input().split(" "))
	max_ans = m/2
	if n>=max_ans:
		print max_ans
		return
	else:
		min_ans = n
		# binary search
		while min_ans+1<max_ans:
			current_ans = (max_ans+min_ans)/2
			if _check(current_ans, n ,m):
				max_ans = current_ans
			else:
				min_ans = current_ans
		# there is no opportunity for max_ans to be an ans
		# however, the min_ans could be, based on our _check() fun
		print min_ans
		return


def _check(ans, n, m):
	total_c = ans*2+(ans-n)*2
	if total_c>m:
		# current ans is too large
		return True
	else:
		return False


if __name__ == "__main__":
	scc_puzzle()

Submission Info

Submission Time
Task C - Scc Puzzle
User zhuang
Language Python (2.7.6)
Score 300
Code Size 655 Byte
Status AC
Exec Time 10 ms
Memory 2568 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 2
AC × 9
Set Name Test Cases
Sample 00_example_01.txt, 00_example_02.txt
All 00_example_01.txt, 00_example_02.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt
Case Name Status Exec Time Memory
00_example_01.txt AC 10 ms 2568 KB
00_example_02.txt AC 10 ms 2568 KB
01.txt AC 10 ms 2568 KB
02.txt AC 10 ms 2568 KB
03.txt AC 10 ms 2568 KB
04.txt AC 10 ms 2568 KB
05.txt AC 10 ms 2568 KB
06.txt AC 10 ms 2568 KB
07.txt AC 10 ms 2568 KB