Cod sursa(job #2091909)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 20 decembrie 2017 15:56:31
Problema Mins Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("q.in");
ofstream cout("q.out");
const int nmax=5000;
int v[nmax+5][10],n,m,l[nmax+5],sol=0;
bool f(int x,int y)
{
    for(int i=1;i<=l[x];i++)
        if(y%v[x][i]==0)
            return 0;
    return 1;
}
int main()
{
    cin>>n>>m;
    for(int i=2;i<=nmax;i++)
        if(l[i]==0)
            for(int j=i;j<=nmax;j+=i)
                v[j][++l[j]]=i;
    n--;
    m--;
    if(n<=m)
    {
        int sol=0;
        for(int i=1;i<=n;i++)
            for(int j=i+1;j<=n;j++)
                sol+=2*f(i,j);
        for(int i=n+1;i<=m;i++)
            for(int j=1;j<=n;j++)
                sol+=f(i,j);
        cout<<sol+1;
        return 0;
    }
    int sol=0;
    for(int i=1;i<=m;i++)
        for(int j=i+1;j<=m;j++)
            sol+=2*f(i,j);
    for(int i=m+1;i<=n;i++)
        for(int j=1;j<=m;j++)
            sol+=f(i,j);
    cout<<sol+1;
    return 0;
}
/**

n = 3

m = 4

  1 2 3 4
1
2
3

**/