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 Java8 (OpenJDK 1.8.0) (judge verdict: Accepted)

import java.util.*;
public class Main{
	public static void main(String[] args){
		//B-Aは0から数えてB=A個ある
		//もしKの方がb-aより大きい場合全て出力＜ー下書いて思ったけどこれいらないね
		//もしKの方がb-aより小さい場合AND(b-a)/2+1<=kが大きい場合も全て出力
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int k = sc.nextInt();
		int afixation = a;
		int bfixation = b;
		int allnumber = b-a+1;//全部の配列の数
		if((b-a)%2 == 1){
		if((b-a)/2+1>=k){//奇数の時
			for(;a < afixation+k;a++){
				System.out.println(a);
			}
			for(;b-k+1 <= bfixation;b++){
				System.out.println(b-k+1);
			}
		}else if((b-a)/2+1<k){//kの数が配列の半分より上にある時
			for(;a <= b;a++){
				System.out.println(a);
			}
		}
		}else if(((b-a)%2 == 0)){
		if((b-a)/2>=k){//偶数の時
			for(;a < afixation+k;a++){
				System.out.println(a);
			}
			for(;b-k+1 <= bfixation;b++){
				System.out.println(b-k+1);
			}
		}else if((b-a)/2<k){//kの数が配列の半分より上にある時
			for(;a <= b;a++){
				System.out.println(a);
			}
		}
	
		}

		
	}
}