Cod sursa(job #1714541)

Utilizator iulianrotaruRotaru Gheorghe-Iulian iulianrotaru Data 8 iunie 2016 17:25:47
Problema Progresie Scor 100
Compilator cpp Status done
Runda Arhiva ICPC Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("progresie.in");
ofstream g("progresie.out");
inline long long solve(long long gr,long long n,long long r){
    long long st=(gr-1)*gr+1,l=gr-1,x,a;
    for(int i=1;i<n;++i){
        x=st+i*r;
        gr=1+(int)sqrt(x-1);
        a=(gr-1)*gr+1;
        if(x+l<a) return 0;
        if(x<a) l-=a-x,st+=a-x;
        else if(x+l>a+gr-1) l=a+gr-1-x;
    }
    return st;
}
int main(){
    int t,n,r,gr;
    long long x;
    f>>t;
    while(t--)
    {
        f>>n>>r;
        gr=1;
        while(!(x=solve(gr,n,r))) gr++;
        g<<x<<'\n';
    }
    return 0;
}