Problem:
Score : 100 points

Problem Statement

There are a total of A + B cats and dogs.
Among them, A are known to be cats, but the remaining B are not known to be either cats or dogs.

Determine if it is possible that there are exactly X cats among these A + B animals.

Constraints

1 \leq A \leq 100

1 \leq B \leq 100

1 \leq X \leq 200

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B X

Output

If it is possible that there are exactly X cats, print YES; if it is impossible, print NO.

Sample Input 1

3 5 4

Sample Output 1

YES

If there are one cat and four dogs among the B = 5 animals, there are X = 4 cats in total.

Sample Input 2

2 2 6

Sample Output 2

NO

Even if all of the B = 2 animals are cats, there are less than X = 6 cats in total.

Sample Input 3

5 3 2

Sample Output 3

NO

Even if all of the B = 3 animals are dogs, there are more than X = 2 cats in total.

Solution in C (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <stdio.h>

#define N_MAX 100000

int main(void)
{
	int i, j;
	int Max = 0;
	int N = 0;
	scanf("%d", &N);	

	int list[N_MAX] = {0};
	int save[N_MAX] = {0};
	
	for (j = 0; j < N_MAX; j++){
		list[j] = 2147483647;
		save[j] = 2147483647;
	}
	
	for (i = 0; i < N; i++){
		scanf("%d", &list[i]);
		save[i] = list[i];
	}
	
	for (i = 0; i < N; i++){
		if (list[i] > Max){
			Max = list[i];
		}
	}
	
	int Left = 0;
	int Right = Max;
	int Mid = 0;
	
	for (i = 0; i < N; i++){
		if (list[i] <= Max / 2){
			if (list[i] > Left){
				Left = list[i];
			}
		}else{
			if (list[i] < Right){
				Right = list[i];
			}
		}	
	}

	if (Max/2 - Left < Right - Max/2){
		Mid = Left;
	}else if (Max/2 - Left > Right - Max/2){
		Mid = Right;
	}else if (Max % 2 == 0){
		Mid = Left;
	}else{
		Mid = Right;
	}
	
	printf("%d %d\n", Max, Mid);
	
	return 0;
}