Pagini recente » Cod sursa (job #2713738) | Cod sursa (job #3041675) | Cod sursa (job #349705) | Cod sursa (job #874359) | Cod sursa (job #1609267)
#include <iostream>
#include <fstream>
#include <vector>
#include <math.h>
using namespace std;
ifstream in("progresie.in");
ofstream out("progresie.out");
bool inSequence(int x)
{
// K(K - 1)+1 <= x <= K^2
int root = (int)(sqrt(x));
if (root*root == x)
return true;
if (x >= root*(root+1) + 1)
return true;
else
return false;
}
bool isFirstNumber(int x, int R, int N)
{
for (int i = 0; i < N; i++)
{
if (!inSequence(x + i*R))
return false;
}
return true;
}
int main()
{
int T;
in >> T;
for (int i = 0; i < T; i++)
{
int N, R;
in >> N >> R;
int M = (N - 1) * R + 1;
int supLim = M*(M-1) + 1;
bool foundLesser = false;
for (int j = 1; j < supLim; j++)
{
if (isFirstNumber(j, R, N))
{
out << j << "\n";
foundLesser = true;
break;
}
}
if (!foundLesser)
out << supLim << "\n";
}
return 0;
}