| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 1227687 | KindaGoodGames | Navigation 2 (JOI21_navigation2) | C++20 | 715 ms | 590144 KiB | 
#include "Anna.h"
#include <bits/stdc++.h>
using namespace std;
#define tiiii tuple<int,int,int,int>
short result[100][100];
short mode[100][100];
bitset<100> vis[100];
namespace {
  int INF = numeric_limits<int>::max()/2; 
} // namespace
void Anna(int n, int K, std::vector<int> R, std::vector<int> C) { 
  for(int i = 0; i <n;i++){
    for(int j = 0; j < n; j++){
      result[i][j] = 1; 
    }
  }
  for(int k = 0; k < K; k++){
    
      for(int i = 0; i < n; i++){
        for(int j = 0; j < n; j++){
          mode[i][j] = 6;
          vis[i][j] = false;
        }
      }
      queue<tiiii> q;
      q.push({0, 5, R[k], C[k]});
      auto psh = [&](int d, int m, int r, int c){
        if(r < 0 || r >= n) return;
        if(c < 0 || c >= n) return;
        if(vis[r][c]) return;
        q.push({d,m,r,c});
      };
      //BFS
      while(q.size()){
        int d,m,r,c;
        tie(d,m,r,c) = q.front(); q.pop();
        vis[r][c] = true;
        if(m != 5)mode[r][c] = m;
        /* 
          > : 0
          < : 1
          v : 2
          ^ : 3
        */
        psh(d+1,1,r,c+1);
        psh(d+1,0,r,c-1);
        psh(d+1,3,r+1,c);
        psh(d+1,2,r-1,c);
      }
      for (int r = 0; r < n; r++) {
        for (int c = 0; c < n; c++) {  
            if(mode[r][c] <= 3) result[r][c] += ((1<<(2*k)) * mode[r][c]);   
        }
      }
  }
 
  for (int r = 0; r < n; r++) {
    for (int c = 0; c < n; c++) { 
      SetFlag(r,c,result[r][c]);
    }
  }
}
#include "Bruno.h"
#include <vector>
namespace {
int toInd(int dr, int dc){
  dr += 1;
  dc += 1;
  return (dr*3)+dc;
}
int conv(int v, int k){
  v >>= (2*k);
  v %= 4;
  return v;
}
} // namespace  
std::vector<int> Bruno(int K, std::vector<int> value) { 
  std::vector<int> res(K, 0);
  for(int i = 0; i < value.size(); i++){
    value[i]--;
  }
  for (int i = 0; i < K; i++) {
    bool isGoal = true;
    if(conv(value[toInd(0,-1)],i) != 0) {
      isGoal = false;
    }
    if(conv(value[toInd(0,1)],i) != 1) {
      isGoal = false;
    }
    if(conv(value[toInd(-1,0)],i) != 2) {
      isGoal = false;
    }
    if(conv(value[toInd(1,0)],i) != 3) {
      isGoal = false;
    }
    if(isGoal){
      res[i] = 4;
    }else{
      int cur = conv(value[4],i);
      res[i] = cur;
    }
  }
  return res;
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|---|---|---|---|
| Fetching results... | ||||
