제출 #1321042

#제출 시각아이디문제언어결과실행 시간메모리
1321042unknown모자이크 (IOI24_mosaic)C++20
5 / 100
1186 ms2162688 KiB
#include <bits/stdc++.h> using namespace std; vector<long long> mosaic(vector<int> X, vector<int> Y, vector<int> T, vector<int> B, vector<int> L, vector<int> R) { int N = X.size(); int Q = T.size(); vector<long long> C(Q, X[0]); if (N == 1) { return C; } vector<vector<long long>> sums(N+1, vector<long long>(N+1, 0)); for (int i = 1; i <= N; i++) { sums[1][i] = sums[1][i-1] + X[i-1]; sums[i][1] = sums[i-1][1] + Y[i-1]; } vector<int> x(N-1), y(N-1); x[0] = y[0] = not(X[1] or Y[1]); for (int i = 1; i < N-1; i++) { x[i] = not(x[i-1] or X[i+1]); y[i] = not(y[i-1] or Y[i+1]); } for (int i = 2; i <= N; i++) { for (int j = 2; j <= N; j++) { sums[i][j] = sums[i-1][j] + sums[i][j-1] - sums[i-1][j-1] + (i <= j ? x[j-i] : y[i-j]); } } for (int i = 0; i < Q; i++) { C[i] = sums[B[i]+1][R[i]+1] - sums[T[i]][R[i]+1] - sums[B[i]+1][L[i]] + sums[T[i]][L[i]]; } 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...