SPOJ - Prędkość średnia - błędna odpowiedź

SPOJ - Prędkość średnia - błędna odpowiedź
madzieq
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 83
0

Witam,

jestem na etapie 'walki' z zadaniem, które niby jest banalne, a jednak SPOJ wyrzuca mi "błędna odpowiedź".

Wszystko zwraca tak jak powinno, nie potrafię znaleźć takich prędkości z zakresu <1, 10000>, aby program niepoprawnie obliczył mi prędkość średnią.

Czy ktoś może ma pomysł dlaczego?

Kopiuj
#include<iostream>

using namespace std;

int main()
{
    unsigned int t, v1, v2, srednia;

    cin >> t;

    for(int i=0; i<t; i++)
    {
     cin >> v1 >> v2;
     srednia = (2*v1*v2)/(v1+v2);
     cout << srednia;
    }
    return 0;
}

Pozdrawiam.

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Pomorskie (Stare Kabaty)
1
Kopiuj
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
	short int v1; //predkosc srednia z a do b;
	short int v2; //predkosc srednia z b do a;
	short int vsr;
	int lT;cin>>lT;++lT;
	while(--lT)
	{
		cin >> v1 >> v2;
		vsr = (2*v1)*v2 / (v1 + v2);	
		cout << vsr << endl;
	}
	return 0;
}


btw. starczą short int-y

fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
1

Nie dziala poprawnie. Dzielisz na intach wiec wynik zawsze jest całkowity.

Czyli jak będzie 5/2 to u ciebie wynik będzie 2 zamiast 2.5

LI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 26
4

A gdzie endline? :D

Kopiuj
 
for(int i=0; i<t; i++)
    {
     cin >> v1 >> v2;
     srednia = (2*v1*v2)/(v1+v2);
     cout << srednia << endl;
    }

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.