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 C (GCC 5.4.1) (judge verdict: Time Limit Exceeded)

#include <stdio.h>
int main(void){
  int N, K;
  do{
   scanf("%d",&N);
   scanf("%d",&K);
  }while(N<1||K<1||N>200000||K>200000);
  
  long int count=0;
  int i,j,k;
  
  int I[N],J[N],L[N];

  int num=1;
  for(i=0;i<N;i++){
    I[i]=num;
    J[i]=num; 
    L[i]=num; 
    num++;
  }

  
  for(i=0;i<N;i++){
   for(j=0;j<N;j++){
     for(k=0;k<N;k++){
       if(I[i]%K==0 && J[j]%K==0 && L[k]%K==0 ){
         count++; 
       }else if(K%2==0 && I[i]%K==K/2 && J[j]%K==K/2 && L[k]%K==K/2){
         count++;
       }
     }
   }   
  }

  printf("%ld\n",count);
  return 0;
}