#include<iostream>
using namespace std;
struct pole{
long long wzrost;
long long stan;
};
pole BajtazaraPole[500000];
int main(){
long long wz;
int liczbaKoszen, liczbaPol;
cin >> liczbaPol >> liczbaKoszen;
for (int i = 0; i < liczbaPol; ++i){
cin >> wz;
BajtazaraPole[i].stan = 0;
BajtazaraPole[i].wzrost = wz;
}
long long dzienOstatniegoKoszenia = 0, dzienKoszenia, wysokosc, suma = 0;
for (int i = 0; i < liczbaKoszen; ++i){
cin >> dzienKoszenia >> wysokosc;
for (int j = 0; j < liczbaPol; ++j){
BajtazaraPole[j].stan = (dzienKoszenia - dzienOstatniegoKoszenia)*BajtazaraPole[j].wzrost + BajtazaraPole[j].stan;
if (BajtazaraPole[j].stan > wysokosc){
suma = suma + BajtazaraPole[j].stan - wysokosc;
BajtazaraPole[j].stan = wysokosc;
}
}
cout << suma << endl;
suma = 0;
dzienOstatniegoKoszenia = dzienKoszenia;
}
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 | #include<iostream> using namespace std; struct pole{ long long wzrost; long long stan; }; pole BajtazaraPole[500000]; int main(){ long long wz; int liczbaKoszen, liczbaPol; cin >> liczbaPol >> liczbaKoszen; for (int i = 0; i < liczbaPol; ++i){ cin >> wz; BajtazaraPole[i].stan = 0; BajtazaraPole[i].wzrost = wz; } long long dzienOstatniegoKoszenia = 0, dzienKoszenia, wysokosc, suma = 0; for (int i = 0; i < liczbaKoszen; ++i){ cin >> dzienKoszenia >> wysokosc; for (int j = 0; j < liczbaPol; ++j){ BajtazaraPole[j].stan = (dzienKoszenia - dzienOstatniegoKoszenia)*BajtazaraPole[j].wzrost + BajtazaraPole[j].stan; if (BajtazaraPole[j].stan > wysokosc){ suma = suma + BajtazaraPole[j].stan - wysokosc; BajtazaraPole[j].stan = wysokosc; } } cout << suma << endl; suma = 0; dzienOstatniegoKoszenia = dzienKoszenia; } return 0; } |
English