Cod sursa(job #2240265)

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

using namespace std;

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

int alg(long long n,long long r,long long a)
{
    long long sf=(a-1)*a+1;
    long long st=a-1,x,b;
    for(int i=1;i<=n-1;i++)
    {
        x=sf+r*i;
        a=sqrt(x-1)+1;
        b=a*(a-1)+1;
        if(b>x+st) return 0;
        if(b>x)
        {
            st-=(b-x);
            sf+=(b-x);
        }
        else if(b+a-1<x+st)
        {
            st=b+a-1-x;
        }
    }
    return sf;
}

int main()
{
    int T,n,r,a;
    fin >> T;
    long long x;
    for(int u=1;u<=T;u++)
    {
        fin >> n >> r;
        a=1;
        x=alg(n,r,a);
        while(x==0)
        {
            a++;
            x=alg(n,r,a);
        }
        fout << x << '\n';
    }
    return 0;
}