Submission #1246919

#TimeUsernameProblemLanguageResultExecution timeMemory
1246919elfwingVision Program (IOI19_vision)C++20
0 / 100
1 ms1220 KiB

#include <bits/stdc++.h>
#include "vision.h"
using namespace std;
using int_t = int64_t;
using int128 = __int128_t;
using ld = long double;
using pi = pair<int_t, int_t>;
using vi = vector<int_t>;
using vvi = vector<vi>;
constexpr int_t INF{numeric_limits<int_t>::max()};
int H_;
int W_;

int ind(int a, int b)
{
    return W_ * a + b;
}

void construct_network(int H, int W, int K)
{
    H_ = H;
    W_ = W;
    vector<pi> ks;
    for (int_t i = 0; i < K; i++)
    {
        ks.push_back({i, K - i});
        ks.push_back({-i, K - i});
        ks.push_back({i, -K + i});
        ks.push_back({-i, -K + i});
    }
    vector<int> mem;
    for (int_t i = 0; i < H; i++)
    {
        for (int_t j = 0; j < W; j++)
        {
            for (auto is : ks)
            {
                if (i + is.first >= 0 && i + is.first < W && j + is.second >= 0 && j + is.second < H)
                {
                    int_t c = add_and({ind(i + is.first, j + is.second), ind(i, j)});
                    mem.push_back(c);
                }
            }
        }
    }
    add_or(mem);
    return;
}
#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...