Cod sursa(job #1057170)
| Utilizator | Data | 14 decembrie 2013 14:25:55 | |
|---|---|---|---|
| Problema | Progresie | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | ONIS 2014, Runda 1 | Marime | 0.72 kb |
#include <cstdio>
#include <cmath>
int N, R, T;
bool verifica(int v) {
for (int i=0; i<N; ++i) {
long long T = v + R * i;
long long R = sqrt(T);
if (R*R+1 <= T && T <= R*(R+1)) return false;
}
return true;
}
int main() {
freopen("progresie.in", "r", stdin);
freopen("progresie.out", "w", stdout);
scanf("%d", &T);
while (T--) {
scanf("%d %d", &N, &R);
int i = 1;
int p = 1;
while (true) {
if (verifica(i)) {
printf("%d\n", i);
break;
}
++i;
if (i == p*p+1) {
i = p*(p+1) + 1;
++p;
}
}
}
return 0;
}