Cod sursa(job #1325235)

Utilizator hrazvanHarsan Razvan hrazvan Data 23 ianuarie 2015 16:14:11
Problema Mins Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <stdio.h>
#define MAXN 1000000
int phi1[MAXN], phi2[MAXN];

inline void ciur(int n, int m){
  int i, j;
  for(i = 1; i <= m; i++)
    phi1[i] = phi2[i] = i - 1;
  for(i = m + 1; i <= n; i++)
    phi1[i] = phi2[i] = m;
  for(i = 2; i <= m; i++){
    for(j = 2 * i; j <= n; j += i)
      phi1[i]--;
  }
  for(i = 2; i <= m; i++){
    for(j = 2 * i; j <= m; j += i)
      phi2[i]--;
  }
}

int main(){
  FILE *in = fopen("mins.in", "r");
  int n, m, aux;
  fscanf(in, "%d%d", &n, &m);
  fclose(in);
  n--;
  m--;
  if(n < m){
    aux = n;
    n = m;
    m = aux;
  }
  ciur(n, m);
  int i;
  long long rez = 0;
  for(i = 1; i <= n; i++)
    rez += phi1[i];
  for(i = 1; i <= m; i++)
    rez += phi2[i];
  FILE *out = fopen("mins.out", "w");
  fprintf(out, "%lld", rez + 1);
  fclose(out);
  return 0;
}