Cod sursa(job #2240256)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 12 septembrie 2018 20:18:17
Problema Progresie Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 1.08 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("progresie.in");
ofstream fout("progresie.out");

int main()
{
    int T,n,r;
    long long i=1;
    fin >> T;
    bool ok=1;
    long long a,b,sf,st,precalc;
    for(int u=1;u<=T;u++)
    {
        fin >> n >> r;
        i=1;
        while(1)
        {
            sf=i*(i-1)+1;
            st=i-1;
            ok=1;
            for(int j=1;j<=n-1;j++)
            {
                sf+=r;
                a=sqrt(sf-1)+1;
                b=a*(a-1)+1;
                if(sf<b)
                {
                    if(sf+st<b)
                    {
                        ok=0;
                        break;
                    }
                    st-=(b-sf);
                    sf=b;
                }
                precalc=a*a;
                if(precalc-sf<st)
                  st=precalc-sf;
            }
            if(ok==1)
            {
                fout << sf-1LL*(n-1)*r << '\n';
                break;
            }
            i++;
        }
    }
    return 0;
}