#include <bits/stdc++.h>
#define F first
#define S second
using namespace std;
const int maxn = 2 * 1e5 + 7;
const int LOG = 20;
const long long MOD = (long long)(1e9) + 7;
const long long base = 311;
const int ALP_BET = 26;
typedef pair<int, int> ii;
typedef pair<int, long long> il;
typedef pair<long long, int> li;
typedef pair<long long, long long> ll;
int n, q;
long long a[maxn];
long long solve(){
long long res = 0;
int id = 1;
for(int i = 1; i <= n; ++i){
while(a[i] / 2LL > 0LL && id != i){
long long mins = min(a[id], a[i] / 2LL);
a[id] = a[id] - mins;
a[i] = a[i] - mins * 2LL;
res = res + mins;
if(a[id] == 0)
++id;
}
}
for(int i = 1; i <= n; ++i)
res = res + a[i] / 3LL;
return res;
}
int main()
{
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
// freopen("Triangl.INP","r",stdin);
// freopen("Triangl.OUT","w",stdout);
cin >> n >> q;
for(int i = 1; i <= n; ++i)
cin >> a[i];
while(q--){
int l, d; cin >> l >> d;
a[l] = a[l] + 1LL * d;
long long ans = solve();
cout << ans << "\n";
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |