#include <iostream> using namespace std; long long tab[500010]; int n,dni; int a[500010]; inline long long aaa(register long long a) { if(a>0)return a; return 0; } inline void update(long long dni) { for(register int i = 0 ; i < n ; i ++) { tab[i]+=(a[i]*dni); } } inline long long cut(long long h) { int wynik = 0; for(register int i = 0 ; i< n ; i ++) { wynik += aaa(tab[i]-h); tab[i]-= aaa(tab[i]-h); } return wynik; } int main() { ios_base::sync_with_stdio(0); int day , h , last_day=0 , last_h=0; cin>>n>>dni; for(register int i = 0 ; i < n ; i ++) { cin>>a[i]; } for(register int i = 0 ; i < dni ; i ++) { cin>>day>>h; update(day-last_day); cout<<cut(h)<<endl; last_day = day; last_h = h; } }
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 | #include <iostream> using namespace std; long long tab[500010]; int n,dni; int a[500010]; inline long long aaa(register long long a) { if(a>0)return a; return 0; } inline void update(long long dni) { for(register int i = 0 ; i < n ; i ++) { tab[i]+=(a[i]*dni); } } inline long long cut(long long h) { int wynik = 0; for(register int i = 0 ; i< n ; i ++) { wynik += aaa(tab[i]-h); tab[i]-= aaa(tab[i]-h); } return wynik; } int main() { ios_base::sync_with_stdio(0); int day , h , last_day=0 , last_h=0; cin>>n>>dni; for(register int i = 0 ; i < n ; i ++) { cin>>a[i]; } for(register int i = 0 ; i < dni ; i ++) { cin>>day>>h; update(day-last_day); cout<<cut(h)<<endl; last_day = day; last_h = h; } } |