Submission #1189633

#TimeUsernameProblemLanguageResultExecution timeMemory
1189633Clan328Mosaic (IOI24_mosaic)C++20
5 / 100
73 ms11332 KiB
#include "mosaic.h"

#include <bits/stdc++.h>

using namespace std;

#define pb push_back
#define mp make_pair
#define nL '\n'
#define all(x) (x).begin(), (x).end()
#define rall(x) (x).rbegin(), (x).rend()

typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef pair<int, int> pii;
typedef vector<pii> vpii;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef pair<ll, ll> pll;
typedef vector<pll> vpll;

std::vector<long long> 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) {
  int Q = (int)T.size();
  std::vector<long long> C(Q, 0);
  int N = (int)X.size();

  if (N <= 3) {
    vvi mat(N, vi(N));
    mat[0] = X;
    for (int i = 0; i < N; i++) mat[i][0] = Y[i];

    for (int i = 1; i < N; i++) {
        for (int j = 1; j < N; j++) {
            mat[i][j] = mat[i-1][j] == 0 && mat[i][j-1] == 0;
        }
    }

    for (int i = 0; i < Q; i++) {
        for (int j = T[i]; j <= B[i]; j++) {
            for (int k = L[i]; k <= R[i]; k++) {
                C[i] += mat[j][k];
            }
        }
    }
  }

  return C;
}
#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...