This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "vision.h"
#include<bits/stdc++.h>
#define sz(x) ll(x.size())
#define all(x) x.begin(),x.end()
#define pb push_back
#define ff first
#define ss second
using namespace std;
typedef long long ll;
typedef pair<ll,ll> ii;
const ll MAX=1e6;
ii mobs[10]={{1,1},{-1,-1},{1,-1},{-1,1},{0,1},{1,0},{-1, 0},{0, -1}};
int n, m, k;
int n_consultas=0;
vector<int> s;
bool valid(int x, int y, int i, int j){
return x>=0 && x<n && y>=0 && y<m && (abs(x-i)+abs(y-j)==k);
}
void mover(int a, int b, int i, int j){
vector<int>q;
q.pb(i*m+j);
for(int z=0; z<8; z++){
int x =i+a*mobs[z].ff;
int y =j+b*mobs[z].ss;
if(valid(x,y,i,j)){
q.pb(x*m+y);
//cout<<i<<' '<<j<<'/'<<x<<' '<<y<<'\n';
add_and(q);
n_consultas++;
q.pop_back();
}
}
q.pop_back();
}
void looks(int a, int b){
for(int x=0; x<=k; x++){
mover(x, k-x, a, b);
}
}
void construct_network(int H, int W, int K){
n=H;
m=W;
k=K;
//cout<<"avocado"<<'\n';
for(int i=0; i<H; i++){
for(int j=0; j<W; j++){
looks(i,j);
}
}
for(int i=0; i<n_consultas; i++){
s.pb(i+n*m);
}
add_or(s);
return;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |