#include <cstdio> #include <vector> int main() { std::vector<long long> pola; std::vector<long long> wzrost; long long powierzchnia, koszen, poprzednieKoszenie = 0, dzien, wysokosc, skoszono = 0; scanf("%lld %lld", &powierzchnia, &koszen); for (int i=0; i<powierzchnia;++i) { pola.push_back(0); scanf("%lld", &wysokosc); wzrost.push_back(wysokosc); } while (koszen--) { skoszono = 0; scanf("%lld %lld", &dzien, &wysokosc); for (int i=0;i<powierzchnia;++i) { pola[i] += wzrost[i]*(dzien-poprzednieKoszenie); fprintf(stderr, "· %lld\n", pola[i]); if (pola[i] > wysokosc) { skoszono += pola[i]-wysokosc; pola[i] = wysokosc; } } poprzednieKoszenie = dzien; printf("%lld\n", skoszono); } }
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 | #include <cstdio> #include <vector> int main() { std::vector<long long> pola; std::vector<long long> wzrost; long long powierzchnia, koszen, poprzednieKoszenie = 0, dzien, wysokosc, skoszono = 0; scanf("%lld %lld", &powierzchnia, &koszen); for (int i=0; i<powierzchnia;++i) { pola.push_back(0); scanf("%lld", &wysokosc); wzrost.push_back(wysokosc); } while (koszen--) { skoszono = 0; scanf("%lld %lld", &dzien, &wysokosc); for (int i=0;i<powierzchnia;++i) { pola[i] += wzrost[i]*(dzien-poprzednieKoszenie); fprintf(stderr, "· %lld\n", pola[i]); if (pola[i] > wysokosc) { skoszono += pola[i]-wysokosc; pola[i] = wysokosc; } } poprzednieKoszenie = dzien; printf("%lld\n", skoszono); } } |