Pagini recente » Cod sursa (job #3174376) | Cod sursa (job #1000046) | Cod sursa (job #1370356) | Cod sursa (job #1286477) | Cod sursa (job #1055577)
#include <fstream>
#include <vector>
bool check(int x)
{
int n = 0;
std::vector<int> v;
for (int i = 1; n <= x; i++)
{
for (int j = 1; j <= i; j++)
{
v.push_back(++n);
if (n == x)
return true;
}
for (int j = 1; j <= i; j++)
++n;
}
return false;
}
bool check_progression(int v, int n, int r)
{
std::vector<int> p;
p.push_back(v);
for (int i = 0; i < n - 1; i++)
p.push_back(p[i] + r);
for (size_t i = 0; i < p.size(); i++)
{
if (!check(p[i]))
return false;
}
return true;
}
int main()
{
std::ifstream in("progresie.in");
std::ofstream out("progresie.out");
int T;
in >> T;
for (int test = 1; test <= T; test++)
{
int N, R;
in >> N >> R;
int n = 0;
bool done = false;
std::vector<int> v;
for (int i = 1; !done; i++)
{
for (int j = 1; j <= i; j++)
v.push_back(++n);
for (int j = 1; j <= i; j++)
++n;
for (size_t j = 0; j < v.size() && !done; j++)
{
if (check_progression(v[j], N, R))
{
out << v[j] << "\n";
done = true;
}
}
}
}
}