Submission #1361241

#TimeUsernameProblemLanguageResultExecution timeMemory
1361241maya_sMosaic (IOI24_mosaic)C++20
0 / 100
926 ms2162688 KiB
#include "mosaic.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll f[200200];
ll n;

void update(ll k, ll val){
  for(; k <= n; k += k&-k) f[k] += val;
}

ll query(ll k){
    ll sum = 0;
    for(; k > 0; k -= k&-k) sum += f[k];
    return sum;
}

ll sum(ll a, ll b){
    return query(b) - query(a-1);
}

vector<long long> mosaic(vector<int> x, vector<int> y, vector<int> t, vector<int> b, vector<int> l, vector<int> r) {
  n = x.size();
  vector<vector<ll>> v(n+1, vector<ll>(n+1));
  // for(ll i = 0; i < n; i++) v[1][i+1] = x[i];
  // for(ll j = 0; j < n; j++) v[j+1][1] = y[j];
  // for(ll i = 2; i <= n; i++) for(ll j = 2; j <= n; j++) v[i][j] = (!v[i][j-1] && !v[i-1][j]);
  for(ll j = 1; j <= n; j++) update(j, x[j-1]);
  ll q = t.size();
  vector<ll> ans(q);
  for(ll i = 0; i < q; i++) ans[i] = sum(l[i]+1, r[i]+1);
  return ans;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...