Cod sursa(job #1061799)

Utilizator misinoonisim necula misino Data 20 decembrie 2013 12:11:51
Problema Progresie Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.74 kb
#include<fstream>
#include<cmath>
using namespace std;
ifstream f("progresie.in");
ofstream g("progresie.out");
int nr,i,t,n;
long long r;
inline long long primul(int x)
{
    return 1LL*x*(x-1)+1;
}
inline bool exista(long long x)
{
    double kk=(double)sqrt((double)x);
    int k=(int)kk;
    if(kk!=(int)kk)
    ++k;
    if(primul(k)<=x&&x<=primul(k)+k-1)
    return 1;
    return 0;
}
inline bool verif(int x)
{
    long long el=primul(x);
    for(i=2;i<=n;++i)
    {
        el+=r;
        if(!exista(el))
        return 0;
    }
    return 1;
}
int main()
{
    f>>t;
    for(;t;--t)
    {
        f>>n>>r;
        nr=1;
        for(;!verif(nr);++nr);
        g<<primul(nr)<<'\n';
    }
    return 0;
}