Problem p00479 (C++) — buggy submission, verdict: Time Limit Exceeded

#include <stdio.h>
int main() {
  int N, K, i, j;
  int a[1000], b[1000], A[1000], B[1000];
  scanf("%d %d", &N, &K);
  for (i = 0; i < K; i++) {
    scanf(" %d %d", &a[i], &b[i]);
  }
  for (i = 0; i < K; i++) {
    if (a[i] > N / 2) {
      A[i] = N - a[i] + 1;
    } else {
      A[i] = a[i];
    }
    if (b[i] > N / 2) {
      B[i] = N - b[i] + 1;
    } else {
      B[i] = b[i];
    }
    if (A[i] == B[i] && A[i] <= N / 2) {
      if (A[i] % 3 == 1) {
        printf("1\\n");
      } else if (A[i] % 3 == 2) {
        printf("2\\n");
      } else if (A[i] % 3 == 0) {
        printf("3\\n");
      }
    } else if (A[i] == B[i] && A[i] > N / 2) {
      if ((N - A[i]) % 3 == 1) {
        printf("1\\n");
      } else if ((N - A[i]) % 3 == 2) {
        printf("2\\n");
      } else if ((N - A[i]) % 3 == 0) {
        printf("3\\n");
      }
    } else if (A[i] > B[i] && B[i] <= N / 2) {
      if (B[i] % 3 == 1) {
        printf("1\\n");
      } else if (B[i] % 3 == 2) {
        printf("2\\n");
      } else if (B[i] % 3 == 0) {
        printf("3\\n");
      }
    } else if (A[i] > B[i] && B[i] > N / 2) {
      if ((N - B[i]) % 3 == 1) {
        printf("1\\n");
      } else if ((N - B[i]) % 3 == 2) {
        printf("2\\n");
      } else if ((N - B[i]) % 3 == 0) {
        printf("3\\n");
      }
    } else if (A[i] < B[i] && A[i] <= N / 2) {
      if (A[i] % 3 == 1) {
        printf("1\\n");
      } else if (A[i] % 3 == 2) {
        printf("2\\n");
      } else if (A[i] % 3 == 0) {
        printf("3\\n");
      }
    } else if (A[i] < B[i] && A[i] > N / 2) {
      if ((N - A[i]) % 3 == 1) {
        printf("1\\n");
      } else if ((N - A[i]) % 3 == 2) {
        printf("2\\n");
      } else if ((N - A[i]) % 3 == 0) {
        printf("3\\n");
      }
    }
  }
  return 0;
}

Error: TLE

Fixed submission:

#include <stdio.h>
int main() {
  long int N, K, a, b, i, j, A, B;
  scanf("%ld", &N);
  scanf(" %ld", &K);
  if (N % 2 == 0) {
    for (a = 0; a < K; a++) {
      scanf(" %ld %ld", &A, &B);
      for (b = 1; b <= N / 2; b++) {
        if (A == b || B == b || A == (N - b + 1) || B == (N - b + 1)) {
          for (i = 1; i < 3; i++) {
            if (b % 3 == i) {
              printf("%ld\\n", i);
            }
          }
          if (b % 3 == 0) {
            printf("3\\n");
          }
          break;
        }
      }
    }
  }
  if (N % 2 != 0) {
    for (a = 0; a < K; a++) {
      scanf(" %ld %ld", &A, &B);
      for (b = 1; b < N / 2; b++) {
        if (A == b || B == b || A == (N - b + 1) || B == (N - b + 1)) {
          for (i = 1; i < 3; i++) {
            if (b % 3 == i) {
              printf("%ld\\n", i);
            }
          }
          if (b % 3 == 0) {
            printf("3\\n");
          }
          break;
        } else if (N / 2 + 1 == A) {
          for (i = 1; i < N / 2; i++) {
            if (B == i) {
              for (j = 1; j < 3; j++) {
                if (B % 3 == j) {
                  printf("%ld\\n", j);
                }
              }
              if (b % 3 == 0) {
                printf("3\\n");
              }
              break;
            }
          }
        } else if (N / 2 + 1 == B) {
          for (i = 1; i < N / 2; i++) {
            if (A == i) {
              for (j = 1; j < 3; j++) {
                if (B % 3 == j) {
                  printf("%ld\\n", j);
                }
              }
              if (b % 3 == 0) {
                printf("3\\n");
              }
              break;
            }
          }
        } else {
          for (j = 1; j < 3; j++) {
            if (A % 3 == j) {
              printf("%ld\\n", j);
            }
          }
          if (b % 3 == 0) {
            printf("3\\n");
          }
          break;
        }
      }
    }
  }
  return 0;
}