Submission #152146

#TimeUsernameProblemLanguageResultExecution timeMemory
152146stefdascaVision Program (IOI19_vision)C++14
0 / 100
4 ms1140 KiB
#include "vision.h"
#include<bits/stdc++.h>
using namespace std;
void construct_network(int H, int W, int K)
{
    /*
	vector<int> Ns;
	Ns = {0, 1};
	int a = add_and(Ns);
	Ns = {0, a};
	int b = add_or(Ns);
	Ns = {0, 1, b};
	int c = add_xor(Ns);
	add_not(c);
	*/
	for(int i = 0; i < H; ++i)
        for(int j = 0; j < W; ++j)
            add_and({i * W + j});
    bool sk[303][303];
    memset(sk, 0, sizeof(sk));
	for(int i = 0; i < H; ++i)
        for(int j = 0; j < W; ++j)
        {
            vector<int>vec;
            for(int q = 0; q < H; ++q)
                for(int z = 0; z < W; ++z)
                    if(abs(i - q) + abs(j - z) == K)
                        vec.push_back(q * W + z);
            if(!vec.size())
                add_and({i * W + j}), sk[i][j] = 1;
            else
                add_and(vec);
        }
    int p1 = H * W;
    int p2 = H * W * 2;
    int qu = H * W * 3;
    for(int i = 0; i < H; ++i)
        for(int j = 0; j < W; ++j)
            if(!sk[i][j])
                add_and({p1, p2}), ++p1, ++p2, ++qu;
    vector<int>s;
    for(int i = H * W * 3; i < qu; ++i)
        s.push_back(i);
    add_or(s);
}
#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...