Cod sursa(job #1057170)

Utilizator VmanDuta Vlad Vman 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;
}