Cod sursa(job #2635678)

Utilizator AndreiDeltaBalanici Andrei Daniel AndreiDelta Data 15 iulie 2020 12:36:28
Problema Progresie Scor 0
Compilator cpp-64 Status done
Runda Arhiva ICPC Marime 0.89 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("progresie.in");
ofstream g("progresie.out");
typedef long long ll;
int T,t;

void Solve()
{
    ll N,R,i,st,dr,start,termen,aux,st1,dr1;
    f>>N>>R;
    for(i=0;;i++)
    {
         st=i*(i+1)+1;
         dr=(i+1)*(i+1);
         start=st;
         aux=i;

        bool ok=1;
        for(ll j=1;j<N && ok ;j++)
        {
            termen=start+j*R;
            ll rad=(ll)sqrt(termen-1);
            st1=rad*(rad+1)+1;
            dr1=(rad+1)*(rad+1);
//cout<<t<<' '<<i<<' '<<termen<<' '<<st1<<' '<<dr1<<'\n';
            if( !(termen>=st1&&termen<=dr1) )
            {
                ok=0;
            }

        }
        if(ok)
        {
            g<<start<<'\n';
            return;
        }
    }
}

int main()
{
    f>>T;
    for(t=1;t<=T;t++)
    {
        Solve();
    }

    return 0;
}