제출 #1225578

#제출 시각아이디문제언어결과실행 시간메모리
1225578PagodePaiva모자이크 (IOI24_mosaic)C++20
22 / 100
84 ms16700 KiB
#include "mosaic.h"
#include<bits/stdc++.h>

using namespace std;

const int N = 200010;
int linha[3][N], coluna[N][3];

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 n = x.size();
    vector <long long> ans;
    for(int i = 0;i < n;i++){
        linha[0][i] = x[i];
        coluna[i][0] = y[i];
    }
    linha[1][0] = coluna[1][0];
    linha[2][0] = coluna[2][0];
    coluna[0][1] = linha[0][1];
    coluna[0][2] = linha[0][2];
    for(int i = 1;i < 3;i++){
        for(int j = 1;j < n;j++){
            if(linha[i][j-1] == 0 and linha[i-1][j] == 0)
                linha[i][j] = 1;
            else
                linha[i][j] = 0;
            if(coluna[j-1][i] == 0 and coluna[j][i-1] == 0)
                coluna[j][i] = 1;
            else
                coluna[j][i] = 0;
        }
    }
    /*for(int i = 0;i < 3;i++){
        for(int j = 0;j < n;j++){
            cout << linha[i][j] << ' ';
        }
        cout << '\n';
    }
    for(int j = 0;j < n;j++){
        for(int i = 0;i < 3;i++){
            cout << coluna[j][i] << ' ';
        }
        cout << '\n';
    }*/
    for(int i = 0;i < T.size();i++){
        int xx = T[i], yy = L[i];
        if(xx < 3){
            ans.push_back(linha[xx][yy]);
        }
        else if(yy < 3){
            ans.push_back(coluna[xx][yy]);
        }
        else{
            int mn = min(xx, yy);
            xx -= mn-2;
            yy -= mn-2;
            if(xx < 3){
                ans.push_back(linha[xx][yy]);
            }
            else if(yy < 3){
                ans.push_back(coluna[xx][yy]);
            }
        }
    }
    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...