Rezultati

Up. imeNalogaJezikRezultatČas oddaje
zgancejem-2019 Ocenjevanje univerz C++ 100/100OK 24. apr '19 @ 18:34

Test Točke Porabljen spomin Porabljen čas Status
#1 [več] 10/10 3,125 MiB 0,079 s OK
#2 [več] 10/10 3,277 MiB 0,148 s OK
#3 [več] 10/10 2,996 MiB 0,000 s OK
#4 [več] 10/10 3,277 MiB 0,085 s OK
#5 [več] 10/10 3,277 MiB 0,045 s OK
#6 [več] 10/10 3,129 MiB 0,085 s OK
#7 [več] 10/10 3,000 MiB 0,072 s OK
#8 [več] 10/10 3,000 MiB 0,078 s OK
#9 [več] 10/10 3,027 MiB 0,004 s OK
#10 [več] 10/10 3,121 MiB 0,125 s OK

Ocenjevani program (a.cpp):

#include <iostream>
#include <iomanip>

using namespace std;
long double getX(int k0, int n0, int k, int n) {
	if (k0 == k) {
		return 0;
	}
	return (long double)(n0 - n) / (long double)(k - k0);
}
int main()
{
	int N, a0, b0;
	cin >> N >> a0 >> b0;
	long double min = 0, max = 1;
	N --;
	while (N--) {
		int a, b;
		cin >> a >> b;
		if (a > a0&&b > b0) {
			cout << "Slabe metrike";
			return 0;
		}
		if (a == a0&&b == b0) continue;
		long double x = getX(a0 - b0, b0, a - b, b);
		if (x < 0 && a0-b0 < a - b || x > 1 && a0 - b0 > a - b) {
			cout << "Slabe metrike";
			return 0;
		}
		if (a - b > a0 - b0 && max > x) {
			max = x;
		}
		else if((a - b < a0 - b0)&&x > min){
			min = x;
		}
		if (min - 0.000001> max) {
			cout << "Slabe metrike";
			return 0;
		}

	}
	cout << setprecision(15) << min << " " << 1 - min;
    return 0;
}