Cod sursa(job #1184350)

Utilizator PopescuMihai95Popescu Mihai PopescuMihai95 Data 12 mai 2014 12:57:23
Problema Progresie Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 1.1 kb
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int n,i,j,r,T;
long long x,y,z,t,i1,m,p,q,k;
bool ok;
int main()
{
    freopen("progresie.in","r",stdin);
    freopen("progresie.out","w",stdout);
    scanf("%d",&T);
    for (i1=1;i1<=T;i1++)
    {
        scanf("%d %d",&n,&r);
        for (i=1; ;i++)
        {
            p=i*(i-1)+1;
            q=i*i;
            m=i-1;
            ok=1;
            for (j=1;j<n;j++)
            {
                x=p+(j*r);
                y=x+m;
                k=(long long)(sqrt((double)(x)));
                if (k*k==x) --k;
                k++;
                z=k*(k-1)+1;
                t=k*k;
                if (y<z)
                {
                    ok=0;
                    break;
                }
                if (x<z)
                {
                    p=p+(z-x);
                    m=m+(x-z);
                }
                if (y>t) m=m+(t-y);
            }
            if (ok)
            {
                printf("%d\n",p);
                break;
            }
        }
    }

}