Cod sursa(job #1245305)

Utilizator OwlreeRobert Badea Owlree Data 18 octombrie 2014 22:01:54
Problema Progresie Scor 0
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.88 kb
#include <bits/stdc++.h>

using namespace std;

long long solve(long long N, long long R) {

    for (long long start = 1;; ++start) {
        bool isGood = true;
        for (long long i = 0; i < N; ++i) {
            long long number = start + i * R;

            long long sq = (long long)ceil(sqrt((double)number));
            long long upLimit = sq * sq;
            long long downLimit = upLimit - sq;

            if ((number < downLimit + 1) || (number > upLimit)) {
                isGood = false;
                break;
            }
        }

        if (isGood) {
            return start;
        }
    }
}

int main() {

    ifstream in("progresie.in");
    ofstream out("progresie.out");

    int T = 0;
    in >> T;
    for (int i = 0; i < T; ++i) {
        int N, R;
        in >> N >> R;
        out << solve(N, R) << "\n";
    }

    in.close();
    out.close();

    return 0;
}