#include <iostream> #include <cstdio> #include <stdlib.h> #include <stdio.h> #include <vector> #include <utility> using namespace std; int main(){ long long area; long long numberOfCuts; scanf("%lld%lld", &area, &numberOfCuts); vector <long long> paceOfGrowth; vector <long long> currentHeights; for (int i = 0; i < area; ++i) { long long n = 0; scanf("%lld", &n); paceOfGrowth.push_back(n); currentHeights.push_back(0); } vector< pair<long long, long long> > cuts; for (int i = 0; i < numberOfCuts; i++) { long long d; long long b; scanf("%lld", &d); scanf("%lld", &b); cuts.push_back(make_pair(d, b)); } long long previousDay = 0; long long day = 0; long long cutToHeight = 0; for (long long i = 0; i < numberOfCuts; ++i) { day = cuts[i].first - previousDay; previousDay = cuts[i].first; cutToHeight = cuts[i].second; long long sumaSiana = 0; for(long long j = 0; j < area; ++j){ currentHeights[j] = currentHeights[j] + (paceOfGrowth[j] * day); if(currentHeights[j] - cutToHeight >= 0 ){ sumaSiana += currentHeights[j] - cutToHeight; currentHeights[j] = cutToHeight; } } printf("%lld\n", sumaSiana); } }
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 | #include <iostream> #include <cstdio> #include <stdlib.h> #include <stdio.h> #include <vector> #include <utility> using namespace std; int main(){ long long area; long long numberOfCuts; scanf("%lld%lld", &area, &numberOfCuts); vector <long long> paceOfGrowth; vector <long long> currentHeights; for (int i = 0; i < area; ++i) { long long n = 0; scanf("%lld", &n); paceOfGrowth.push_back(n); currentHeights.push_back(0); } vector< pair<long long, long long> > cuts; for (int i = 0; i < numberOfCuts; i++) { long long d; long long b; scanf("%lld", &d); scanf("%lld", &b); cuts.push_back(make_pair(d, b)); } long long previousDay = 0; long long day = 0; long long cutToHeight = 0; for (long long i = 0; i < numberOfCuts; ++i) { day = cuts[i].first - previousDay; previousDay = cuts[i].first; cutToHeight = cuts[i].second; long long sumaSiana = 0; for(long long j = 0; j < area; ++j){ currentHeights[j] = currentHeights[j] + (paceOfGrowth[j] * day); if(currentHeights[j] - cutToHeight >= 0 ){ sumaSiana += currentHeights[j] - cutToHeight; currentHeights[j] = cutToHeight; } } printf("%lld\n", sumaSiana); } } |