import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int[] number = new int[3];
number[0] = in.nextInt();
number[1] = in.nextInt();
number[2] = in.nextInt();
if (number[0] == number[1] && number[0] == number[2] && number[2] == number[1])
{
System.out.println(3*number[0]);
return;
}
int max = number[0];
for (int i = 0; i< 3; i++)
{
if (max < number[i])
{
max=number[i];
}
}
int twoSum=0;
if (max == number[0])
{
twoSum = number[1]+number[2];
}
if (max == number[1])
{
twoSum = number[0]+number[2];
}
if (max == number[2])
{
twoSum = number[0]+number[1];
}
int total=0;
if (max >= twoSum)
{
total = 2*twoSum-1;
}
else if ( max < twoSum)
{
total= number[1]+number[2]+number[0];
}
System.out.println(total);
}
} 이번에도 당연히 제일 작은 값이랑 그 다음으로 작은 값을 구해야할 줄 알았다. 하지만 이건 제일 큰 값을 구하는 문제였다. 조금만 생각을 해보면 알 수 있었다. 나는 생각하지 못해서 지피티를 이용했다. 다음에는 다른 방식으로 생각을 해보고서 문제를 풀어봐야겠다.