Submission #1278366

#TimeUsernameProblemLanguageResultExecution timeMemory
1278366avighnaMosaic (IOI24_mosaic)C++20
8 / 100
74 ms11876 KiB
#include <vector>

using int64 = long long;

std::vector<int64> mosaic(std::vector<int> X, std::vector<int> Y,
                          std::vector<int> T, std::vector<int> B,
                          std::vector<int> L, std::vector<int> R) {
  const int N = X.size();
  std::vector<int64> ans;
  auto white = [&](int x, int y) { return (x + y) & 1; };
  for (int i = 0; i < T.size(); ++i) {
    int x1 = T[i] + 1, y1 = L[i] + 1, x2 = B[i] + 1, y2 = R[i] + 1;
    if (x1 == 1) {
      x1++;
    }
    if (y1 == 1) {
      y1++;
    }
    if (x1 > x2 or y1 > y2) {
      ans.push_back(0);
      continue;
    }
    int64 ar = int64(y2 - y1 + 1) * (x2 - x1 + 1);
    ans.push_back((ar + !(white(x1, y1) and white(x2, y2))) / 2);
  }

  return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...