
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>

#define N 20
#define NTHREADS 4
int main(int argc, char** argv) {
  int a[N], b[N], x;
  
  omp_set_num_threads(NTHREADS);

  a[0] = b[0] = 0;
  for (int i = 1; i < N; i++) {
    a[i] = (i % (N/2));
    b[i] = a[i] + i % 3;
  }

  x = 0;
  // TODO: 
  // 1) identify and classify dependencies
  // 2) parallelize the loop.
  for (int i = 1; i < N; i++) {
    if (a[i] == b[i] && a[i] > a[x]) {
      x = i;
    } 
  }

  // print contents
  for (int i = 0; i < N; i++) {
    printf("a[%d]=%d b[%d]=%d\n",
           i, a[i], i, b[i]);
  }
  printf("x=%d\n", x);
  return 0;
}
