


백준대학교에서는 대회에 나갈 때 2명의 여학생과 1명의 남학생이 팀을 결성해서 나가는 것이 원칙이다. (왜인지는 총장님께 여쭈어보는 것이 좋겠다.)
백준대학교는 뛰어난 인재들이 많아 올해에도 N명의 여학생과 M명의 남학생이 팀원을 찾고 있다. 대회에 참여하려는 학생들 중 K명은 반드시 인턴쉽 프로그램에 참여해야 한다. 인턴쉽에 참여하는 학생은 대회에 참여하지 못한다.
백준대학교에서는 뛰어난 인재들이 많기 때문에, 많은 팀을 만드는 것이 최선이다.
여러분은 여학생의 수 N, 남학생의 수 M, 인턴쉽에 참여해야하는 인원 K가 주어질 때 만들 수 있는 최대의 팀 수를 구하면 된다.
첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N)
만들 수 있는 팀의 최대 개수을 출력하면 된다.
주어진 여학생, 남학생, 인턴 참여 인원 수가 있을 때 먼저 인턴 참여 인원 수 k에따라 여학생의 수와 남학생의 수를 일정부분 제외한 후 가장 많은 팀을 구해야 한다.
따라서 (여학생에서 제외시킬 인원, 남학생에서 제외시킬 인원)이라고 했을 때, (k, 0) ~ (0, k)의 범위 내에서 인원 수를 뺀 후, 여학생 // 2와 남학생 중 작은 수를 선택하여 만들 수 있는 최대 팀의 개수를 구할 수 있다.
n, m, k = map(int, input().split())
ans = 0
for i in range(k + 1):
girls = n - i
boys = m - (k - i)
ans = max(ans, min(girls//2, boys))
print(ans)
오랜만에 만난 브론즈 난이도 문제라서 금방 해결할 수 있었다.
https://www.acmicpc.net/problem/2875