Regiones paralelas y reparto de trabajo

¿Cuántas veces saldrá cada letra (A, B, C… G) si se ejecuta este código con 4 hilos?

¿Hay barreras? ¿dónde?

  #pragma omp parallel private(i)
  {
    printf("A\n");

    for (i=0; i<10; i++)
      printf("B\n");

    #pragma omp for
    for (i=0; i<10; i++)
      printf("C\n");

    printf("D\n");

    #pragma omp sections nowait
    {
      #pragma omp section
      printf("E\n");
      #pragma omp section
      printf("F\n");
    }

    printf("G\n");
  }

Solución: