#include "mosaic.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<long long> mosaic(vector<int> X, vector<int> Y, vector<int> T, vector<int> B, vector<int> L, vector<int> R) {
int N = (int)X.size();
int Q = (int)T.size();
// vector<ll> prefix(N + 1);
// for(int i = 1; i <= N; i++){
// prefix[i] = prefix[i - 1] + X[i - 1];
// srand(time(0));
// N = 100;
// Q = 10000;
// T.resize(Q); L.resize(Q); R.resize(Q); B.resize(Q);
// for(int i = 0; i < Q; i++){
// T[i] = rand() % 10;
// B[i] = T[i] + rand() % (N - T[i]);
// L[i] = rand() % 10;
// R[i] = L[i] + rand() % (N - L[i]);
// }
// vector<vector<int>> grid(N, vector<int>(N));
// for(int i = 0; i < N; i++){
// grid[0][i] = 0;
// grid[i][0] = 0;
// }
// for(int y = 1; y < N; y++){
// for(int x = 1; x < N; x++){
// int color = grid[y][x - 1] == 0 && grid[y - 1][x] == 0 ? 1 : 0;
// grid[y][x] = color;
// }
// }
vector<ll> r(Q);
// vector<ll> s(Q);
// for(int i = 0; i < Q; i++){
// ll amount = 0;
// for(int y = T[i]; y <= B[i]; y++){
// for(int x = L[i]; x <= R[i]; x++){
// if(grid[y][x] == 1) amount++;
// }
// }
// s[i] = amount;
// }
for(int i = 0; i < Q; i++){
if(T[i] == 0 && B[i] == 0 || L[i] == 0 && R[i] == 0){
r[i] == 0;
// if(s[i] != r[i]){
// cout << "now";
// }
continue;
}
ll top = max(1, T[i]);
ll bottom = max(1, B[i]);
ll left = max(1, L[i]);
ll right = max(1, R[i]);
ll rows = bottom - top + 1;
ll columns = right - left + 1;
if(rows % 2 == 0 || columns % 2 == 0){
r[i] = (columns * rows) / 2;
// if(s[i] != r[i]){
// cout << "now";
// }
continue;
}
ll additional = top % 2 == left % 2 || bottom % 2 == right % 2 ? 1 : 0;
r[i] = floor(rows * columns / 2) + additional;
// if(s[i] != r[i]){
// cout << "now";
// }
// r[i] = prefix[R[i] + 1] - prefix[L[i]];
}
// for(int i = 0; i < r.size(); i++){
// if(r[i] != s[i]){
// cout << "here";
// }else{
// cout << r[i] << " ";
// }
// }
return r;
}
// #include "grader.cpp"
# | 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... |