Cod sursa(job #2332856)

Utilizator ivan.tudorIvan Tudor ivan.tudor Data 31 ianuarie 2019 12:47:13
Problema Indep Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N=1005;
int cmmdc[N];
int add[N];
int v[505];
int gcd(int a,int b){
  int r;
  if(a<b)
    swap(a,b);
  while(b!=0){
    r=a%b;
    a=b;
    b=r;
  }
  return a;
}
int main()
{
    FILE*fin,*fout;
    fin=fopen("indep.in","r");
    fout=fopen("indep.out","w");
    int n;
    cmmdc[0]=1;
    fscanf(fin,"%d",&n);
    for(int i=1;i<=n;i++){
      fscanf(fin,"%d",&v[i]);
      memset(add,0,sizeof(add));
      for(int j=N-1;j>=0;j--){
        add[gcd(j,v[i])]+=cmmdc[j];
      }
      for(int j=N-1;j>=0;j--){
        cmmdc[j]+=add[j];
      }
    }
    fprintf(fout,"%d",cmmdc[1]);
    return 0;
}