#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; } } |
English