Submission #1189469

#TimeUsernameProblemLanguageResultExecution timeMemory
1189469alexddVision Program (IOI19_vision)C++20
0 / 100
25 ms4748 KiB
#include <bits/stdc++.h>
#include "vision.h"
using namespace std;

void construct_network(int H, int W, int K)
{
    vector<int> linii,coloane;
    for(int lin=1;lin<H;lin++)
    {
        vector<int> v;
        for(int i=0;i<lin;i++)
            for(int j=0;j<W;j++)
                v.push_back(i*W+j);
        int sus = add_or(v);

        v.clear();
        for(int i=lin;i<H;i++)
            for(int j=0;j<W;j++)
                v.push_back(i*W+j);
        int jos = add_or(v);

        linii.push_back(add_and({sus,jos}));
    }
    for(int col=1;col<W;col++)
    {
        vector<int> v;
        for(int i=0;i<col;i++)
            for(int j=0;j<H;j++)
                v.push_back(j*W+i);
        int st = add_or(v);

        v.clear();
        for(int i=col;i<W;i++)
            for(int j=0;j<H;j++)
                v.push_back(j*W+i);
        int dr = add_or(v);

        coloane.push_back(add_and({st,dr}));
    }
    int zero = add_and({coloane[0],add_not(coloane[0])});
    int unu = add_not(zero);

    vector<int> combinat;
    for(int x:linii)
        combinat.push_back(x);
    for(int x:coloane)
        combinat.push_back(x);

    vector<int> cnt;
    for(int lun=0;lun<10;lun++)
        cnt.push_back(add_not(unu));
    //for(int x:cnt) cerr<<x<<" zzz\n";
    for(int x:combinat)
    {
        vector<int> newcnt;
        for(int i=0;i<cnt.size();i++)
        {
            vector<int> aux;
            aux.push_back(x);
            for(int j=0;j<i;j++)
                aux.push_back(cnt[j]);
            newcnt.push_back(add_xor({add_and(aux),cnt[i]}));
        }
        cnt = newcnt;
    }
    vector<int> rez;
    for(int i=0;i<cnt.size();i++)
        if((1<<i)&K)
            rez.push_back(cnt[i]);
        else
            rez.push_back(add_not(cnt[i]));
    add_and(rez);
}
/*

2 2 1
0 0 1 1
0 0 0 1
0 0 1 0
-1

2 3 3
0 0 1 2
1 0 0 2
0 0 1 1
-1


*/
#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...