#include <iostream> using namespace std; void clear_table(long long int* tab,int length) { for(int i=0;i<length;i++) { tab[i] = 0; } } void dodaj_trawe(long long int* pole,int* trawa,int l_dni,int n) { for(int i=0;i<n;i++) { pole[i] += (l_dni * trawa[i]); } } int zlicz_trawe(long long int* pole,int* trawa,int n,long long int ost_koszenie,long long int dzien,long long int dlugosc) { long long int l_dni = dzien - ost_koszenie; dodaj_trawe(pole,trawa,l_dni,n); long long int sum = 0; for(int i=0;i<n;i++) { sum += pole[i] - dlugosc; pole[i] = dlugosc; } if(sum < 0) { return 0; } return sum; } void clear_table(int* tab,int length) { for(int i=0;i<length;i++) { tab[i] = 0; } } int main() { //liczba dni i arow int n=0,m=0; cin>>n>>m; //gatunki ile urosnie int* trawa = new int[n]; clear_table(trawa,n); long long int* pole = new long long int[n]; clear_table(pole,n); for(int i=0;i<n;i++) { cin>>trawa[i]; } //dzien - skoszenie long long int dni[m][2]; for(int i=0;i < m;i++) { cin>>dni[i][0]>>dni[i][1]; } long long int ost_koszenie = 0; for(int i=0;i<m;i++) { cout<<zlicz_trawe(pole,trawa,n,ost_koszenie,dni[i][0],dni[i][1])<<endl; ost_koszenie = dni[i][0]; } 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 | #include <iostream> using namespace std; void clear_table(long long int* tab,int length) { for(int i=0;i<length;i++) { tab[i] = 0; } } void dodaj_trawe(long long int* pole,int* trawa,int l_dni,int n) { for(int i=0;i<n;i++) { pole[i] += (l_dni * trawa[i]); } } int zlicz_trawe(long long int* pole,int* trawa,int n,long long int ost_koszenie,long long int dzien,long long int dlugosc) { long long int l_dni = dzien - ost_koszenie; dodaj_trawe(pole,trawa,l_dni,n); long long int sum = 0; for(int i=0;i<n;i++) { sum += pole[i] - dlugosc; pole[i] = dlugosc; } if(sum < 0) { return 0; } return sum; } void clear_table(int* tab,int length) { for(int i=0;i<length;i++) { tab[i] = 0; } } int main() { //liczba dni i arow int n=0,m=0; cin>>n>>m; //gatunki ile urosnie int* trawa = new int[n]; clear_table(trawa,n); long long int* pole = new long long int[n]; clear_table(pole,n); for(int i=0;i<n;i++) { cin>>trawa[i]; } //dzien - skoszenie long long int dni[m][2]; for(int i=0;i < m;i++) { cin>>dni[i][0]>>dni[i][1]; } long long int ost_koszenie = 0; for(int i=0;i<m;i++) { cout<<zlicz_trawe(pole,trawa,n,ost_koszenie,dni[i][0],dni[i][1])<<endl; ost_koszenie = dni[i][0]; } return 0; } |