Problem:
Score : 300 points

Problem Statement

You are given integers N and K. Find the number of triples (a,b,c) of positive integers not greater than N such that a+b,b+c and c+a are all multiples of K.
The order of a,b,c does matter, and some of them can be the same.

Constraints

1 \leq N,K \leq 2\times 10^5

N and K are integers.

Input

Input is given from Standard Input in the following format:

N K

Output

Print the number of triples (a,b,c) of positive integers not greater than N such that a+b,b+c and c+a are all multiples of K.

Sample Input 1

3 2

Sample Output 1

9

(1,1,1),(1,1,3),(1,3,1),(1,3,3),(2,2,2),(3,1,1),(3,1,3),(3,3,1) and (3,3,3) satisfy the condition.

Sample Input 2

5 3

Sample Output 2

1

Sample Input 3

31415 9265

Sample Output 3

27

Sample Input 4

35897 932

Sample Output 4

114191

Solution in Java8 (OpenJDK 1.8.0) (judge verdict: Wrong Answer)

import java.util.Scanner;

public class Main {
	  
	public static void main(String args[]) {
		    Scanner scanner = new Scanner(System.in);
		    
		    //a+b,b+c,c+aがkの倍数ということはmodK=0となるということ。
		    //とりあえずNとKを読み込む
		    int N = scanner.nextInt();
		    int K = scanner.nextInt();
		    int n = N / K;
		    int kotae = n*(n-1)*(n-2)
					+n*(n-1)*3
					+n;
		    
		    if( K % 2 != 0) 
		    {
		    	System.out.println(kotae);
		    }
		    else 
		    {
		    	if(N % K == 0) 
		    	{
		    		System.out.println(kotae*2);
		    	}
		    	else {
		    		if( K / 2 <= N % K  ) 
		    		{
		    			int kotae2 = (n+1)*n*(n-1)+3*(n+1)*n+n+1;
		    			System.out.println(kotae+kotae2);
		    		}
		    		else 
		    		{
		    		System.out.println(2*kotae);
		    		}
		    	}
		    }
		    
		    scanner.close(); }
		  }