Submission #424132

#TimeUsernameProblemLanguageResultExecution timeMemory
424132madlogicVision Program (IOI19_vision)C++17
33 / 100
9 ms2208 KiB
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;

void construct_network(int H, int W, int K) {
  int cur = (H - 1) * W + W - 1;
  vector<int> v;
  map<pair<int, int>, bool> vis;
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      for (int x = 0; x <= K; x++) {
        int y = K - x;
        for (int ys : {-y, y}) {
          int dx = i + x;
          int dy = j + ys;
          if (dx >= 0 && dx < H && dy >= 0 && dy < W) {
            int xx = i * W + j;
            int yy = dx * W + dy;
            if (vis.count({xx, yy}) || vis.count({yy, xx})) {
              continue;
            }
            vis[{xx, yy}] = vis[{yy, xx}] = true;
            add_and({xx, yy});
            ++cur;
            v.push_back(cur);
          }
        }
      }
    }
  }
  if (!v.empty())
    add_or(v);
}

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