Pagini recente » Cod sursa (job #2319797) | Cod sursa (job #2221219) | Cod sursa (job #2043884) | Cod sursa (job #1105990) | Cod sursa (job #2913113)
#include <bits/stdc++.h>
using namespace std;
ifstream in("progresie.in");
ofstream out("progresie.out");
typedef long long ll;
bool check(ll x)
{
ll n=sqrt(x);
while(n*(n+1)<x)
++n;
--n;
x-=n*(n+1);
if(x<=n+1)
return true;
return false;
}
ll nextterm(ll x)
{
ll n=sqrt(x);
while(n*(n+1)<x)
++n;
--n;
if(x-n*(n+1)<=n+1)
return x;
return (n+1)*(n+2)+1;
}
ll lastterm(ll x)
{
ll n=sqrt(x);
while(n*(n+1)<x)
++n;
--n;
if(x-n*(n+1)<=n+1)
return x;
return (n+1)*(n+1);
}
ll tst,n,r;
int main()
{
ios_base::sync_with_stdio(false);
in.tie(0),out.tie(0);
in>>tst;
while(tst--)
{
in>>n>>r;
for(ll grupa=1;;++grupa)
{
ll st=(grupa-1)*grupa+1;
ll dr=grupa*grupa;
bool ok=true;
for(ll i=1;i<n;++i)
{
st+=r;
dr+=r;
st=nextterm(st);
dr=lastterm(dr);
if(st>dr)
{
ok=false;
break;
}
}
if(!ok)
continue;
out<<st-(n-1)*r<<'\n';
break;
}
}
return 0;
}
/// pt (30,1.000.000) e 1.464.248.491
/// pt (30,100.000.000) e 670.380.219.057
/*
11
30 1000000
30 100000000
30 1000000
30 100000000
30 1000000
30 100000000
30 1000000
30 100000000
30 1000000
30 100000000
30 12345678
*/