Submission #1033487

#TimeUsernameProblemLanguageResultExecution timeMemory
1033487ALeonidouVision Program (IOI19_vision)C++17
33 / 100
198 ms1496 KiB
#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 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...