Tuesday, September 22, 2015

UVa 10784 - Diagonal

// UVa 10784 - Diagonal

#include <iostream>
#include <stdio.h>
#include <math.h>
using namespace std;

#define integer unsigned long long int

int main() {
	integer n;
	int t = 0;
	while ((cin >> n) && n != 0) {
		t++;
		// s*(s-1)/2 - s <= n
		// 0.5*s^2 - 1.5*s - n <= 0
		double a = 0.5;
		double b = -1.5;
		double c = -1.0 * n;
		double d = b * b - 4 * a * c;
		double x = (-b + sqrt(d)) / (2 * a);
		integer s = (integer) (ceil(x));
		printf("Case %d: %llu\n", t, s);
	}
	return 0;
}

No comments:

Post a Comment