Problem:
Score : 200 points

Problem Statement

Print all the integers that satisfies the following in ascending order:

Among the integers between A and B (inclusive), it is either within the K smallest integers or within the K largest integers.

Constraints

1 \leq A \leq B \leq 10^9

1 \leq K \leq 100

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B K

Output

Print all the integers that satisfies the condition above in ascending order.

Sample Input 1

3 8 2

Sample Output 1

3
4
7
8

3 is the first smallest integer among the integers between 3 and 8.

4 is the second smallest integer among the integers between 3 and 8.

7 is the second largest integer among the integers between 3 and 8.

8 is the first largest integer among the integers between 3 and 8.

Sample Input 2

4 8 3

Sample Output 2

4
5
6
7
8

Sample Input 3

2 9 100

Sample Output 3

2
3
4
5
6
7
8
9

Solution in Java7 (OpenJDK 1.7.0) (judge verdict: Runtime Error)

import java.util.Scanner;

public class Main {
	
	public void solve() {
		Scanner input = new Scanner(System.in);
		int a = input.nextInt();
		int b = input.nextInt();
		int k = input.nextInt();
		input.close();
		int[] A = new int[b-a+1];
		int v = a;
		for(int i = 0; i < b - a + 1; i++) {
			A[i] = v;
			v++;
		}
		
		if( k >= A.length) {
			display(0, A.length, A);
			return;
		}
		
		if (k <= (double)(b - a + 1)/(double)2) {
			display(0, k, A);
	 		display(A.length - k, A.length, A);			
		} else {
			display(0, k, A);
	 		display(k, A.length, A);						
		}		
	}
	
	private void display(int from, int to, int[] A) {
		for (int i = from; i < to; i++) {
			System.out.println(A[i]);
		}
	}
	
	public static void main(String[] args) {
		new Main().solve();
	}

}