La geometrie, domnul profesor de matematică le-a vorbit elevilor săi despre unghiuri. Pentru a fi sigur că aceștia au înțeles noțiunile predate, le-a dat o listă cu n
probleme.
Cerința
Fiind date numărul de ore în variabila h
și numărul de minute în variabila m
, să se determine câte grade avea unghiul dintre orarul și minutarul unui ceas clasic, la ora h
şi m
minute?
Date de intrare
Fișierul unghi.in
va conține pe prima linie un număr natural n
, reprezentând numărul de probleme date ca temă, iar pe a doua linie, două numere h
și m
, separate printr-un spațiu, cu semnificațiile din cerință.
Date de ieșire
Fișierul unghi.out
va conține pe câte o linie numărul de grade corespunzător unghiului format de orar și minutar, pentru fiecare dintre cele n probleme din temă.
Restricții și precizări
n
este număr natural,1≤n≤100
h
este număr natural,0≤h≤24
m
este număr natural,0≤m≤60
- Dimensiunea unui unghi se măsoară în grade. Un cerc are
360
de grade.
Exemplu
unghi.in
3 8 20 1 10 5 15
unghi.out
130 25 67.5
Explicație
Aşa cum se vede şi în figura de mai sus unghiul dintre orar şi minutar este de 130
grade pentru prima pereche de valori din fişierul de intrare. Asemănător se obţin şi celelalte valori corespunzătoare următoarelor perechi.
#include <bits/stdc++.h> using namespace std; ifstream cin("unghi.in"); ofstream cout("unghi.out"); int main() { int n; cin >> n; int h , m; for(int i = 0 ; i < n ; ++i) { cin >> h >> m; double rez1=0 , rez2=0; h%=12; rez1=h*30; rez2=m*6; double proc=0; proc=(double)60/m; rez1+=(double)30/proc; if(abs(rez1-rez2)>180) cout << 360-abs(rez1-rez2) <<endl; else cout << abs(rez1-rez2) <<endl; } return 0; }