Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <climits>
- using namespace std;
- int wejscie_danych_z_pliku()
- {
- int wejscie = 0;
- cin >> wejscie;
- return wejscie;
- }
- //Nie wiem czy mog³em skorzystaæ z gotowej metody na wartoœæ bezwzglêdn¹ (abs),
- //dlatego liczby ujemne zamieniam na dodatnie, gdy¿ droga nie mo¿e byæ < 0:
- int wart_bezwzgledna(int liczba)
- {
- if (liczba < 0)
- return liczba * -1;
- return liczba;
- }
- int oblicz_najkrotsza_droge(int ilosc_przyjaciol, int *x, int *y)
- {
- int najkrotsza_droga = INT_MAX;
- for (int a = 0; a < ilosc_przyjaciol; a++)
- {
- int droga = 0;
- for (int b = 0; b < ilosc_przyjaciol; b++)
- {
- if(a != b)
- droga = droga + wart_bezwzgledna(x[a] - x[b]) + wart_bezwzgledna(y[a] - y[b]);
- if(droga > najkrotsza_droga) break;
- }
- if(droga < najkrotsza_droga)
- najkrotsza_droga = droga;
- }
- return najkrotsza_droga;
- }
- void problemA()
- {
- int ilosc_przyjaciol = wejscie_danych_z_pliku();
- int* x = new int[ilosc_przyjaciol];
- int* y = new int[ilosc_przyjaciol];
- for (int i = 0; i < ilosc_przyjaciol; i++)
- {
- x[i] = wejscie_danych_z_pliku();
- y[i] = wejscie_danych_z_pliku();
- }
- cout << oblicz_najkrotsza_droge(ilosc_przyjaciol, x, y);
- }
- int main()
- {
- int ilosc_testow = wejscie_danych_z_pliku();
- for (int i = 0; i < ilosc_testow; i++)
- {
- problemA();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement