#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream plik("temp.txt");
ofstream wynik("zad_4.txt");
int lata[228];
double temp[228][12];
// 1. Wczytywanie danych
for (int i = 0; i < 228; i++) {
plik >> lata[i];
for (int j = 0; j < 12; j++) {
plik >> temp[i][j];
}
}
// 2. Podpunkty a) i b) - Najniższa i najwyższa średnia roczna
double min_srednia = 999.0;
double max_srednia = -999.0;
int rok_min = 0, rok_max = 0;
for (int i = 0; i < 228; i++) {
double suma = 0;
for (int j = 0; j < 12; j++) {
suma += temp[i][j];
}
double srednia = suma / 12.0;
if (srednia < min_srednia) {
min_srednia = srednia;
rok_min = lata[i];
}
if (srednia > max_srednia) {
max_srednia = srednia;
rok_max = lata[i];
}
}
wynik << "a) " << min_srednia << " " << rok_min << endl;
wynik << "b) " << max_srednia << " " << rok_max << endl;
// 3. Podpunkt c) - Min i max dla każdego miesiąca
wynik << "c)" << endl;
for (int m = 0; m < 12; m++) {
double min_m = 999.0;
double max_m = -999.0;
for (int i = 0; i < 228; i++) {
if (temp[i][m] < min_m) min_m = temp[i][m];
if (temp[i][m] > max_m) max_m = temp[i][m];
}
wynik << "Miesiac " << m + 1 << ": Min = " << min_m << ", Max = " << max_m << endl;
}
// 4. Podpunkt d) - Ciąg malejący dla sierpnia (indeks 7)
int max_dlugosc = 1;
int rok_pocz = lata[0], rok_kon = lata[0];
int biezaca_dlugosc = 1;
int biezacy_pocz = lata[0];
for (int i = 1; i < 228; i++) {
if (temp[i][7] < temp[i-1][7]) {
biezaca_dlugosc++;
} else {
if (biezaca_dlugosc > max_dlugosc) {
max_dlugosc = biezaca_dlugosc;
rok_pocz = biezacy_pocz;
rok_kon = lata[i-1];
}
biezaca_dlugosc = 1;
biezacy_pocz = lata[i];
}
}
// Sprawdzenie na koniec pliku
if (biezaca_dlugosc > max_dlugosc) {
max_dlugosc = biezaca_dlugosc;
rok_pocz = biezacy_pocz;
rok_kon = lata[227];
}
wynik << "d) Rok poczatkowy: " << rok_pocz
<< ", Rok koncowy: " << rok_kon
<< ", Dlugosc: " << max_dlugosc << endl;
plik.close();
wynik.close();
return 0;
}