Cod sursa(job #1989481)

Utilizator DruffbaumPopescu Vlad Druffbaum Data 7 iunie 2017 17:11:59
Problema Matrice5 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <cstdio>

const int MOD = 1e4 + 7;

int pw(int a, int n, int ac) {
  if (!n) {
    return ac;
  }
  if (n & 1) {
    ac = (ac * a) % MOD;
  }
  return pw((a * a) % MOD, n / 2, ac);
}

int main() {
  int t, n, m, p, k;
  FILE *fin = fopen("matrice5.in", "r");
  fscanf(fin, "%d", &t);
  FILE *fout = fopen("matrice5.out", "w");
  while (t--) {
    fscanf(fin, "%d%d%d%d", &n, &m, &p, &k);
    fprintf(fout, "%d\n", (pw(p, n * m, 1) * pw(k, (n - 1) * (m - 1), 1)) % MOD);
  }
  fclose(fin);
  fclose(fout);
  return 0;
}