#include <iostream> #include <math.h> using namespace std; unsigned int i,j,n,m; //n-ilość gatunków m-ilość koszeń unsigned int szybkosc_wzrostu[500000]; //szybkość wzrostu trawy /* unsigned int wysokosc_strzyzenia[500000]; //przycięcie trawy do długości b unsigned int dzien_strzyzenia[500000]; //dzień strzyżenia unsigned int wysokosc_trawy[500000]; */ unsigned int wysokosc_strzyzenia; //przycięcie trawy do długości b unsigned int dzien_strzyzenia; //dzień strzyżenia unsigned int wysokosc_trawy[500000]; unsigned long long ilosc_skoszona; unsigned int aktualny_dzien=0,roznica_dni; int main() { cin >> n; cin >> m; for (i=0;i<n;i++) { cin >> szybkosc_wzrostu[i]; wysokosc_trawy[i]=0; } /* for (i=0;i<m;i++) { cin >> dzien_strzyzenia[i]; cin >> wysokosc_strzyzenia[i]; } //jedziemy po koszeniach for (i=0;i<m;i++) { roznica_dni=dzien_strzyzenia[i]-aktualny_dzien; ilosc_skoszona=0; for (j=0;j<n;j++) { // wzrost trawy wysokosc_trawy[j]=wysokosc_trawy[j]+(szybkosc_wzrostu[j]*roznica_dni); // koszenie trawy if(wysokosc_trawy[j]>wysokosc_strzyzenia[i]) { ilosc_skoszona=ilosc_skoszona+wysokosc_trawy[j]-wysokosc_strzyzenia[i]; wysokosc_trawy[j]=wysokosc_strzyzenia[i]; } } cout << ilosc_skoszona << endl; aktualny_dzien=aktualny_dzien+roznica_dni; } */ //jedziemy po koszeniach for (i=0;i<m;i++) { cin >> dzien_strzyzenia; cin >> wysokosc_strzyzenia; roznica_dni=dzien_strzyzenia-aktualny_dzien; ilosc_skoszona=0; for (j=0;j<n;j++) { // wzrost trawy wysokosc_trawy[j]=wysokosc_trawy[j]+(szybkosc_wzrostu[j]*roznica_dni); // koszenie trawy if(wysokosc_trawy[j]>wysokosc_strzyzenia) { ilosc_skoszona=ilosc_skoszona+wysokosc_trawy[j]-wysokosc_strzyzenia; wysokosc_trawy[j]=wysokosc_strzyzenia; } } cout << ilosc_skoszona << endl; aktualny_dzien=aktualny_dzien+roznica_dni; } // cout << wynik; return 0; }
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #include <iostream> #include <math.h> using namespace std; unsigned int i,j,n,m; //n-ilość gatunków m-ilość koszeń unsigned int szybkosc_wzrostu[500000]; //szybkość wzrostu trawy /* unsigned int wysokosc_strzyzenia[500000]; //przycięcie trawy do długości b unsigned int dzien_strzyzenia[500000]; //dzień strzyżenia unsigned int wysokosc_trawy[500000]; */ unsigned int wysokosc_strzyzenia; //przycięcie trawy do długości b unsigned int dzien_strzyzenia; //dzień strzyżenia unsigned int wysokosc_trawy[500000]; unsigned long long ilosc_skoszona; unsigned int aktualny_dzien=0,roznica_dni; int main() { cin >> n; cin >> m; for (i=0;i<n;i++) { cin >> szybkosc_wzrostu[i]; wysokosc_trawy[i]=0; } /* for (i=0;i<m;i++) { cin >> dzien_strzyzenia[i]; cin >> wysokosc_strzyzenia[i]; } //jedziemy po koszeniach for (i=0;i<m;i++) { roznica_dni=dzien_strzyzenia[i]-aktualny_dzien; ilosc_skoszona=0; for (j=0;j<n;j++) { // wzrost trawy wysokosc_trawy[j]=wysokosc_trawy[j]+(szybkosc_wzrostu[j]*roznica_dni); // koszenie trawy if(wysokosc_trawy[j]>wysokosc_strzyzenia[i]) { ilosc_skoszona=ilosc_skoszona+wysokosc_trawy[j]-wysokosc_strzyzenia[i]; wysokosc_trawy[j]=wysokosc_strzyzenia[i]; } } cout << ilosc_skoszona << endl; aktualny_dzien=aktualny_dzien+roznica_dni; } */ //jedziemy po koszeniach for (i=0;i<m;i++) { cin >> dzien_strzyzenia; cin >> wysokosc_strzyzenia; roznica_dni=dzien_strzyzenia-aktualny_dzien; ilosc_skoszona=0; for (j=0;j<n;j++) { // wzrost trawy wysokosc_trawy[j]=wysokosc_trawy[j]+(szybkosc_wzrostu[j]*roznica_dni); // koszenie trawy if(wysokosc_trawy[j]>wysokosc_strzyzenia) { ilosc_skoszona=ilosc_skoszona+wysokosc_trawy[j]-wysokosc_strzyzenia; wysokosc_trawy[j]=wysokosc_strzyzenia; } } cout << ilosc_skoszona << endl; aktualny_dzien=aktualny_dzien+roznica_dni; } // cout << wynik; return 0; } |