/// Code by Leonardo16
/// “Your focus determines your reality.” – Qui-Gon Jinn
#include<bits/stdc++.h>
#include "vision.h"
using namespace std;
#pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline")
//#pragma GCC option("arch=native","tune=native","no-zero-upper")
//#pragma GCC target("avx2")
//#define int long long
#define ll long long
#define sz size
#define ull unsigned long long
#define ld long double
#define ii pair<int,int>
#define fst first
#define scd second
#define vi vector<int>
#define vii vector<ii>
#define pb push_back
#define pf push_front
#define fl '\n'
#define el endl
#define all(x) x.begin() , x.end()
#define rall(x) x.rbegin() , x.rend()
/// Functions
#define db(x) cerr << #x << ": " << (x) << '\n';
#define random() __builtin_ia32_rdtsc()
#define lg2(x) 31-__builtin_clz(x)
#define lg2ll(x) 63-__builtin_clzll(x)
#define pi acos(-1)
#define YN(x) cout<<((x)?("YES"):("NO"))<<fl;
#define yn(x) cout<<((x)?("Yes"):("No"))<<fl;
#define des(x,s1,s2,end1,end2) cout<<((x)?(s1):(s2))<<fl;if(x){end1;}else{end2;}
#define precision(x) cout.setf(ios::fixed);cout.precision(x);
/// Red-Black Tree Template
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//using namespace __gnu_pbds;
//typedef tree < long long , null_type , less<long long> , rb_tree_tag , tree_order_statistics_node_update > ordered_set;
//#define less_than(n) order_of_key(n)
//#define en_pos(n) find_by_order(n)
/// Prime numbers 173,179,311,331,737,1009,2011,2027,3079,4001,100003
///=====================================================================
//
//void add_or(vi v){
//// cout<< "OR : ";
//// for(int i=0;i<v.sz();i++){cout<<v[i]<<" ";}cout<<fl;
//}
//
//void add_and(vi v){
//// cout<< "AND : ";
//// for(int i=0;i<v.sz();i++){cout<<v[i]<<" ";}cout<<fl;
//}
int dist(ii a,ii b){
return abs(a.fst-b.fst)+abs(a.scd-b.scd);
}
int real_dist(int n,int m,ii a,ii b){
if(a.fst>b.fst)swap(a,b);
if(a.fst==b.fst){
return abs(a.scd-b.scd)+1;
}
int cnt=m*(b.fst-a.fst-1);
cnt+=m-a.scd;
cnt+=b.scd;
return cnt;
}
vector<vi> v;
int arr[202][202];
void count_dist(int n,int m,int k){
int wr=0;
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
arr[i][j]=wr++;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
vii vv;
vector<bool>vb;
for(int h=i;h<n;h++){
for(int g=(h==i)?(j):(0);g<m;g++){
if( dist({i,j},{h,g})==k ){
vv.pb({h,g});
vb.pb(false);
}
}
}
for(int h=0;h<vv.sz();h++){
if(vb[h]==true)continue;
vi tp;
tp.pb(arr[i][j]);
tp.pb(arr[vv[h].fst][vv[h].scd]);
for(int g=h+1;g<vv.sz();g++){
if( dist(vv[h],vv[g]) == k ){
tp.pb(arr[vv[g].fst][vv[g].scd]);
vb[g]=true;
break;
}
}
v.pb(tp);
}
}
}
}
void construct_network( int n,int m,int k){
count_dist(n,m,k);
int wr=n*m-1;
for(auto it:v){
add_and(it);
wr++;
}
vi nv;
for(int i=n*m;i<=wr;i++){
nv.pb(i);
}
if(nv.sz()==0){
for(int i=0;i<n*m;i++){
nv.pb(i);
}
add_and(nv);
return;
}
add_or(nv);
return;
}
//int main(){
// construct_network(30,30,15);
//}
Compilation message
vision.cpp: In function 'void count_dist(int, int, int)':
vision.cpp:98:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
98 | for(int h=0;h<vv.sz();h++){
| ~^~~~~~~~
vision.cpp:103:32: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
103 | for(int g=h+1;g<vv.sz();g++){
| ~^~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
256 KB |
Output is correct |
2 |
Correct |
0 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
0 ms |
256 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
1 ms |
256 KB |
Output is correct |
7 |
Correct |
0 ms |
256 KB |
Output is correct |
8 |
Incorrect |
0 ms |
256 KB |
on inputs (0, 0), (0, 2), expected 1, but computed 0 |
9 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
256 KB |
Output is correct |
2 |
Correct |
0 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
0 ms |
256 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
1 ms |
256 KB |
Output is correct |
7 |
Correct |
0 ms |
256 KB |
Output is correct |
8 |
Incorrect |
0 ms |
256 KB |
on inputs (0, 0), (0, 2), expected 1, but computed 0 |
9 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
256 KB |
Output is correct |
2 |
Correct |
0 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
0 ms |
256 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
1 ms |
256 KB |
Output is correct |
7 |
Correct |
0 ms |
256 KB |
Output is correct |
8 |
Incorrect |
0 ms |
256 KB |
on inputs (0, 0), (0, 2), expected 1, but computed 0 |
9 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
256 KB |
Output is correct |
2 |
Correct |
0 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
0 ms |
256 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
1 ms |
256 KB |
Output is correct |
7 |
Correct |
0 ms |
256 KB |
Output is correct |
8 |
Incorrect |
0 ms |
256 KB |
on inputs (0, 0), (0, 2), expected 1, but computed 0 |
9 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Correct |
1 ms |
384 KB |
Output is correct |
4 |
Correct |
0 ms |
256 KB |
Output is correct |
5 |
Correct |
1 ms |
512 KB |
Output is correct |
6 |
Correct |
1 ms |
512 KB |
Output is correct |
7 |
Correct |
1 ms |
512 KB |
Output is correct |
8 |
Correct |
0 ms |
512 KB |
Output is correct |
9 |
Correct |
1 ms |
384 KB |
Output is correct |
10 |
Correct |
1 ms |
384 KB |
Output is correct |
11 |
Correct |
0 ms |
384 KB |
Output is correct |
12 |
Correct |
1 ms |
384 KB |
Output is correct |
13 |
Correct |
0 ms |
384 KB |
Output is correct |
14 |
Correct |
1 ms |
256 KB |
Output is correct |
15 |
Correct |
1 ms |
512 KB |
Output is correct |
16 |
Correct |
1 ms |
512 KB |
Output is correct |
17 |
Correct |
1 ms |
512 KB |
Output is correct |
18 |
Correct |
1 ms |
512 KB |
Output is correct |
19 |
Correct |
1 ms |
512 KB |
Output is correct |
20 |
Correct |
1 ms |
512 KB |
Output is correct |
21 |
Correct |
0 ms |
256 KB |
Output is correct |
22 |
Correct |
1 ms |
256 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
256 KB |
Output is correct |
2 |
Correct |
0 ms |
256 KB |
Output is correct |
3 |
Correct |
12 ms |
1404 KB |
Output is correct |
4 |
Incorrect |
25 ms |
5556 KB |
WA in grader: Too many instructions |
5 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
890 ms |
5956 KB |
WA in grader: Too many instructions |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
256 KB |
Output is correct |
2 |
Correct |
0 ms |
256 KB |
Output is correct |
3 |
Correct |
0 ms |
256 KB |
Output is correct |
4 |
Correct |
0 ms |
256 KB |
Output is correct |
5 |
Correct |
1 ms |
384 KB |
Output is correct |
6 |
Correct |
1 ms |
256 KB |
Output is correct |
7 |
Correct |
0 ms |
256 KB |
Output is correct |
8 |
Incorrect |
0 ms |
256 KB |
on inputs (0, 0), (0, 2), expected 1, but computed 0 |
9 |
Halted |
0 ms |
0 KB |
- |