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>
#include<math.h>
#define LEN 100000

int max(int arr[], int n){
	int i;
	int m=0;
	for(i=0;i<n;i++){
		if(m<arr[i]){
			m = arr[i];
		}
	}
	return m;
}

int check(int arr[], int m, int n){
	int c;
	int i;
	int a=500000000;
	int p;
	c = m / 2;
	for(i=0;i<n;i++){
		if(a>abs(arr[i]-c)&&arr[i]!=m){
			a = abs(arr[i]-c);
			p = arr[i];
		}
	}
	return p;
}

int main(void){
	int n;
	int arr[LEN];
	int i;
	int m1;
	int m2;
	scanf("%d", &n);
	for(i=0;i<n;i++){
		scanf("%d", &arr[i]);
	}
	m1 = max(arr, n);
	m2 = check(arr, m1, n);
	printf("%d %d", ((m1>m2)?m1:m2), ((m1>m2)?m2:m1));
	return 0;
}