#include<bits/stdc++.h>
#include "mosaic.h"
using namespace std;
typedef long long ll;
vector<ll>mosaic(vector<int>X, vector<int>Y, vector<int>T, vector<int>B, vector<int>L, vector<int>R){
int n = X.size(), q = T.size();
vector<ll>ans(q);
if(n <= 5000){
vector<vector<int>>f(n + 1, vector<int>(n + 1, 0));
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
f[i][j] = f[i][j - 1] + f[i - 1][j] - f[i - 1][j - 1] + (i == 1 ? X[j - 1] : (j == 1 ? Y[i - 1] : ((X[j - 1] | Y[i - 1]) ^ 1)));
}
}
for(int i = 0; i < q; i++){
ans[i] = f[B[i] + 1][R[i] + 1] - f[B[i] + 1][L[i]] - f[T[i]][R[i] + 1] + f[T[i]][L[i]];
}
}
else{
}
return ans;
}
# | 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... |
# | 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... |