Cod sursa(job #2635671)

Utilizator AndreiDeltaBalanici Andrei Daniel AndreiDelta Data 15 iulie 2020 12:20:22
Problema Progresie Scor 0
Compilator cpp-64 Status done
Runda Arhiva ICPC Marime 1.12 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;
    f>>N>>R;
    for(i=1;;i++)
    {
         st=i*(i-1)+1;
         dr=i*i;
         start=st;
         aux=i;

        bool ok=1;
        for(ll j=1;j<N && ok ;j++)
        {
            termen=start+j*R;
            if(termen >= st && termen <= dr ) continue;
            else
            if(termen > dr )
            {
                ll st1=st,dr1=dr;
                while( !( termen>=st1 && termen <=dr1 ) )
                {
                    aux++;
                    st1=aux*(aux)+1;
                    dr1=aux*aux;
                    if( st1 > termen )
                    {
                        ok=0;
                        break;
                    }
                }
            }
        }
        if(ok)
        {
            g<<start<<'\n';
            return;
        }
    }
}

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

    return 0;
}