#include <bits/stdc++.h>
#include "vision.h"
using namespace std;
#define ll long long
#define y1 zck_is_king
#define pii pair<int, int>
#define ull unsigned ll
#define f first
#define s second
#define ALL(x) x.begin(),x.end()
#define SZ(x) (int)x.size()
#define SQ(x) (x)*(x)
#define MN(a,b) a = min(a,(__typeof__(a))(b))
#define MX(a,b) a = max(a,(__typeof__(a))(b))
#define pb push_back
#define REP(i,n) for (int i = 0; i<n; ++i)
#define RREP(i,n) for (int i = n-1; i>=0; --i)
#define REP1(i,n) for (int i = 1; i<=n; ++i)
#define SORT_UNIQUE(c) (sort(c.begin(),c.end()), c.resize(distance(c.begin(),unique(c.begin(),c.end()))))
#ifdef BALBIT
#define IOS()
#define bug(...) fprintf(stderr,"#%d (%s) = ",__LINE__,#__VA_ARGS__),_do(__VA_ARGS__);
template<typename T> void _do(T &&x){cerr<<x<<endl;}
template<typename T, typename ...S> void _do(T &&x, S &&...y){cerr<<x<<", ";_do(y...);}
#else
#define IOS() ios_base::sync_with_stdio(0);cin.tie(0);
#define endl '\n'
#define bug(...)
#endif
const int iinf = 1e9+10;
const ll inf = 1ll<<60;
const ll mod = 1e9+7 ;
void GG(){cout<<"0\n"; exit(0);}
ll mpow(ll a, ll n, ll mo = mod){ // a^n % mod
ll re=1;
while (n>0){
if (n&1) re = re*a %mo;
a = a*a %mo;
n>>=1;
}
return re;
}
ll inv (ll b, ll mo = mod){
if (b==1) return b;
return (mo-mo/b) * inv(mo%b,mo) % mo;
}
const int maxn = 1e5+5;
int n, m;
int id(int i, int j) {
return i*m+j;
}
vector<int> dia1[200+200+5], dia2[200+200+5];
int d1and(int x) {
return n*m+x;
}
int d2and(int x) {
return n*m+n+m-1+x;
}
vector<int> d1pl, d1pr, d2pl, d2pr;
//int add_or(vector<int> x) {
//
//}
//int add_and(vector<int> x) {
//
//}
//int add_xor(vector<int> x) {
//
//}
//int add_not(int x) {
//
//}
void construct_network(int _n, int _m, int K) {
n=_n; m=_m;
REP(i,n) REP(j,m) {
dia1[i+j].pb(id(i,j));
dia2[i+m-1-j].pb(id(i,j));
}
REP(i,n+m-1) {
add_or(dia1[i]);
}
REP(i,n+m-1) {
add_or(dia2[i]);
}
{
int lst = -1;
REP(i,n+m-1) {
if (lst == -1) {
lst = add_or({d1and(i)});
}else{
lst = add_or({lst, d1and(i)});
}
d1pl.pb(lst);
}
}
{
int lst = -1;
RREP(i,n+m-1) {
if (lst == -1) {
lst = add_or({d1and(i)});
}else{
lst = add_or({lst, d1and(i)});
}
d1pr.pb(lst);
}
}
{
int lst = -1;
REP(i,n+m-1) {
if (lst == -1) {
lst = add_or({d2and(i)});
}else{
lst = add_or({lst, d2and(i)});
}
d2pl.pb(lst);
}
}
{
int lst = -1;
RREP(i,n+m-1) {
if (lst == -1) {
lst = add_or({d2and(i)});
}else{
lst = add_or({lst, d2and(i)});
}
d2pr.pb(lst);
}
}
vector<int> tmp1;
REP(i, n+m-K-1) {
tmp1.pb(add_and({d1and(i), d1and(i+K)}));
}
int anydia1 = add_or(tmp1);
vector<int> tmp2;
REP(i, n+m-K-1) {
tmp2.pb(add_and({d2and(i), d2and(i+K)}));
}
// return;
int anydia2 = add_or(tmp2);
int anybad1, anybad2;
{
vector<int> g1;
REP(i,n+m) {
if (i+K+1 < n+m-1) {
g1.pb(add_and({d1pl[i], d1pr[i+K+1]}));
}
}
anybad1 = SZ(g1)==0?-1:add_or(g1);
}
{
vector<int> g2;
REP(i,n+m) {
if (i+K+1 < n+m-1) {
g2.pb(add_and({d2pl[i], d2pr[i+K+1]}));
}
}
anybad2 = SZ(g2)==0?-1:add_or(g2);
}
if (anybad1 == -1) {
int ans = add_or({anydia1, anydia2});
}else{
int nobad1 = add_not(anybad1);
int nobad2 = add_not(anybad2);
int ok1 = add_and({anydia1, nobad2});
int ok2 = add_and({anydia2, nobad1});
int ans = add_or({ok1, ok2});
}
}
//
//signed main(){
// IOS();
//
//
//}
Compilation message
vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:170:13: warning: unused variable 'ans' [-Wunused-variable]
170 | int ans = add_or({anydia1, anydia2});
| ^~~
vision.cpp:176:13: warning: unused variable 'ans' [-Wunused-variable]
176 | int ans = add_or({ok1, ok2});
| ^~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Incorrect |
1 ms |
204 KB |
on inputs (0, 0), (1, 0), expected 1, but computed 0 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Incorrect |
1 ms |
204 KB |
on inputs (0, 0), (1, 0), expected 1, but computed 0 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Incorrect |
1 ms |
204 KB |
on inputs (0, 0), (1, 0), expected 1, but computed 0 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Incorrect |
1 ms |
204 KB |
on inputs (0, 0), (1, 0), expected 1, but computed 0 |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
2 ms |
460 KB |
on inputs (0, 1), (0, 2), expected 1, but computed 0 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
204 KB |
on inputs (0, 0), (0, 1), expected 1, but computed 0 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
13 ms |
1784 KB |
on inputs (80, 199), (81, 199), expected 1, but computed 0 |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Incorrect |
1 ms |
204 KB |
on inputs (0, 0), (1, 0), expected 1, but computed 0 |
4 |
Halted |
0 ms |
0 KB |
- |