#include<iostream> #include<vector> int main() { using namespace std; ios_base::sync_with_stdio(0); long powierzchnia_pola_w_arach_i_liczba_traw, liczba_skoszen_trawy; cin >> powierzchnia_pola_w_arach_i_liczba_traw >> liczba_skoszen_trawy; vector<long long>aktualna_wysokosc_traw(powierzchnia_pola_w_arach_i_liczba_traw); for (int i = 0; i < powierzchnia_pola_w_arach_i_liczba_traw; i++) aktualna_wysokosc_traw.push_back(0); long * predkosc_wzrostu_trawy = new long[powierzchnia_pola_w_arach_i_liczba_traw]; long long przyciecie_trawy_do; long long zebrane_siano = 0L; long long w_jakim_dniu_koszenie, odjecie = 0; long long roznica; for (long i = 0; i < powierzchnia_pola_w_arach_i_liczba_traw; i++) cin >> predkosc_wzrostu_trawy[i]; for (long i = 0; i < liczba_skoszen_trawy; i++, zebrane_siano = 0) { cin >> w_jakim_dniu_koszenie >> przyciecie_trawy_do; roznica = w_jakim_dniu_koszenie-odjecie; for (long i = 0; i < powierzchnia_pola_w_arach_i_liczba_traw; i++) { aktualna_wysokosc_traw[i] += (predkosc_wzrostu_trawy[i]*roznica); if (aktualna_wysokosc_traw[i] > przyciecie_trawy_do) { zebrane_siano += (aktualna_wysokosc_traw[i]-przyciecie_trawy_do); aktualna_wysokosc_traw[i] = przyciecie_trawy_do; } } cout << zebrane_siano << endl; odjecie = w_jakim_dniu_koszenie; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include<iostream> #include<vector> int main() { using namespace std; ios_base::sync_with_stdio(0); long powierzchnia_pola_w_arach_i_liczba_traw, liczba_skoszen_trawy; cin >> powierzchnia_pola_w_arach_i_liczba_traw >> liczba_skoszen_trawy; vector<long long>aktualna_wysokosc_traw(powierzchnia_pola_w_arach_i_liczba_traw); for (int i = 0; i < powierzchnia_pola_w_arach_i_liczba_traw; i++) aktualna_wysokosc_traw.push_back(0); long * predkosc_wzrostu_trawy = new long[powierzchnia_pola_w_arach_i_liczba_traw]; long long przyciecie_trawy_do; long long zebrane_siano = 0L; long long w_jakim_dniu_koszenie, odjecie = 0; long long roznica; for (long i = 0; i < powierzchnia_pola_w_arach_i_liczba_traw; i++) cin >> predkosc_wzrostu_trawy[i]; for (long i = 0; i < liczba_skoszen_trawy; i++, zebrane_siano = 0) { cin >> w_jakim_dniu_koszenie >> przyciecie_trawy_do; roznica = w_jakim_dniu_koszenie-odjecie; for (long i = 0; i < powierzchnia_pola_w_arach_i_liczba_traw; i++) { aktualna_wysokosc_traw[i] += (predkosc_wzrostu_trawy[i]*roznica); if (aktualna_wysokosc_traw[i] > przyciecie_trawy_do) { zebrane_siano += (aktualna_wysokosc_traw[i]-przyciecie_trawy_do); aktualna_wysokosc_traw[i] = przyciecie_trawy_do; } } cout << zebrane_siano << endl; odjecie = w_jakim_dniu_koszenie; } } |