답안 #403318

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
403318 2021-05-13T03:28:43 Z balbit Vision Program (IOI19_vision) C++14
0 / 100
15 ms 1868 KB
#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) {
        tmp1.pb(add_and({d1and(i), d1and(i+K)}));
    }
    int anydia1 = add_or(tmp1);
    vector<int> tmp2;
    REP(i, n+m-K) {
        tmp2.pb(add_and({d2and(i), d2and(i+K)}));
    }
    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 = 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 = add_or(g2);
    }
    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:172:9: warning: unused variable 'ans' [-Wunused-variable]
  172 |     int ans = add_or({ok1, ok2});
      |         ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 316 KB WA in grader: Instruction with no inputs
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 316 KB WA in grader: Instruction with no inputs
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 316 KB WA in grader: Instruction with no inputs
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Incorrect 1 ms 316 KB WA in grader: Instruction with no inputs
3 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 15 ms 1868 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 Incorrect 1 ms 316 KB WA in grader: Instruction with no inputs
3 Halted 0 ms 0 KB -