Cod sursa(job #1057460)

Utilizator mihaipopa12Popa Mihai mihaipopa12 Data 14 decembrie 2013 14:53:08
Problema Progresie Scor 0
Compilator cpp Status done
Runda ONIS 2014, Runda 1 Marime 0.64 kb
#include<stdio.h>
#include<vector>
#include<cstring>
#include<algorithm>

#define maxn 1005

using namespace std;

FILE*f=fopen("progresie.in","r");
FILE*g=fopen("progresie.out","w");

int n,r;

int main () {
	
	int tests;
	fscanf(f,"%d",&tests);
	
	while ( tests-- ){
		
		fscanf(f,"%d %d",&n,&r);
		long long dif = 1LL*(n-1)*r;
		long long left = 1,middle,right = 3000000000LL;
		
		long long sol = (dif+1)*(dif+1)-dif;
		while ( left <= right ){
			middle = (left+right)>>1;
			
			if ( middle*middle >= dif ){
				right = middle-1;
			}
			else{
				left = middle+1;
			}
		}
		
		
		fprintf(g,"%lld\n",sol);
	}
	
	fclose(f);
	fclose(g);
	
	return 0;
}