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>
using namespace std;
#define ll int
#define pb push_back
#define sz(x) (ll)x.size()
#define F first
#define S second
#define endl "\n"
typedef vector <ll> vi;
typedef pair <ll,ll> ii;
typedef vector <ii> vii;
#define dbg(x) cout<<#x<<": "<<x<<endl;
#define dbg2(x,y) cout<<#x<<": "<<x<<" "<<#y<<": "<<y<<endl;
#define dbg3(x,y,z) cout<<#x<<": "<<x<<" "<<#y<<": "<<y<<" "<<#z<<": "<<z<<endl;
void printVct(vi &v){
for (ll i =0; i<sz(v); i++){
cout<<v[i]<<" ";
}
cout<<endl;
}
ll h, w, k;
ll get_point(ll x, ll y){
return (x * w) + y;
}
void construct_network(int H, int W, int K) {
h = H, w = W, k = K;
// if (h * w == 2) return;
set <ii> st;
ll c = 0;
for (ll x1 =0; x1<h; x1++){
for (ll y1 =0; y1<w; y1++){
for (ll x2 = 0; x2<h; x2++){
for (ll y2 = 0; y2 < w; y2++){
if (x1 == x2 && y1 == y2) continue;
ll d = abs(x1-x2) + abs(y1-y2);
if (d == k) {
ll a = get_point(x1,y1), b = get_point(x2,y2);
if (a > b) swap(a,b);
if (st.find(ii(a,b)) == st.end()){
ll x = add_and({get_point(x1,y1), get_point(x2,y2)});
st.insert(ii(a, b));
c++;
}
// dbg(c);
// dbg3(x1,y1,get_point(x1,y1));
// dbg3(x2,y2,get_point(x2,y2));
}
}
}
}
}
//subtask 6:
// ll x1 = 0, y1 = 0, c = 0;
// for (ll x2 = 0; x2<h; x2++){
// for (ll y2 = 0; y2 < w; y2++){
// if (x1 == x2 && y1 == y2) continue;
// ll d = abs(x1-x2) + abs(y1-y2);
// if (d == k){
// ll x = add_and({get_point(x1,y1), get_point(x2,y2)});
// c++;
// // dbg(c);
// // dbg3(x1,y1,get_point(x1,y1));
// // dbg3(x2,y2,get_point(x2,y2));
// }
// }
// }
vi v;
for (ll i =h*w; i<h*w+c; i++){
v.pb(i);
}
add_or(v);
}
/*
1 2 1
0 0 0 1
-1
2 3 3
0 1 0 2
2 3 4
0 2 1 0
-1
2 3 3
0 0 0 1
0 0 0 2
0 0 1 0
0 0 1 1
0 0 1 2
0 1 0 2
0 1 1 0
0 1 1 1
0 1 1 2
0 2 1 0
0 2 1 1
0 2 1 2
1 0 1 1
1 0 1 2
1 1 1 2
-1
*/
Compilation message (stderr)
vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:50:11: warning: unused variable 'x' [-Wunused-variable]
50 | ll x = add_and({get_point(x1,y1), get_point(x2,y2)});
| ^
# | 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... |