# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1205531 | tamzid | 모자이크 (IOI24_mosaic) | C++20 | 0 ms | 0 KiB |
#include "mosaic.h"
#include <vector>
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 = X.size();
std::vector<std::vector<int>> grid(n,std::vector<int>(n));
for(int i=0;i<n;++i)
{
grid[i][0] = Y[i];
}
for(int i=0;i<n;++i)
{
grid[0][i] = X[i];
}
if(grid[0][1] == 0 && grid[1][0] == 0)
{
grid[1][1] = 1;
}
else
{
grid[1][1] = 0;
}
for(int k=0;k<Q;++k)
{
if(T[i] == B[i])
{
int cnt = 0;
for(int i=L[i];i<=R[i];++i)
{
if(grid[T[i]][i] == 1)
++cnt;
}
C[k] = cnt;
}
else
{
int cnt = 0;
for(int i=T[i];i<=B[i];++i)
{
for(int j=L[i];j<=R[i];++j)
{
if(grid[i][j] == 1)
++cnt;
}
}
C[k] = cnt;
}
}
return C;
}