답안 #678706

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
678706 2023-01-06T11:37:08 Z jiahng 웜뱃 (IOI13_wombats) C++14
55 / 100
7239 ms 262144 KB
#include "wombats.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int,int> pi;
typedef vector <int> vi;
typedef vector <pi> vpi;
typedef pair<pi, ll> pii;
typedef set <ll> si;
typedef long double ld;
#define f first
#define s second
#define mp make_pair
#define FOR(i,s,e) for(int i=s;i<=int(e);++i)
#define DEC(i,s,e) for(int i=s;i>=int(e);--i)
#define pb push_back
#define all(x) (x).begin(), (x).end()
#define lbd(x, y) lower_bound(all(x), y)
#define ubd(x, y) upper_bound(all(x), y)
#define aFOR(i,x) for (auto i: x)
#define mem(x,i) memset(x,i,sizeof x)
#define fast ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0)
#define maxn 200010
#define INF (ll)1e9
#define MOD 1000000007
typedef pair <vi, int> pvi;
typedef pair <int,pi> ipi;
typedef vector <pii> vpii;

int R,C;
int H[5000][200], V[5000][200], ss[5000][200];
struct node{
    int s,e,m;
    int val[200][200];
    node *l,*r;
    
    node(int _s,int _e){
        s = _s; e = _e; m = (s + e) / 2;
        if (s != e){
            l = new node(s,m); r = new node(m+1,e);
            FOR(i,0,C-1) FOR(j,0,C-1){
                val[i][j] = INF;
                FOR(k,0,C-1) val[i][j] = min(val[i][j], l->val[i][k] + r->val[k][j] + V[m][k]);
            }
        }else{
            FOR(i,0,C-1) FOR(j,0,C-1) val[i][j] = abs(ss[s][i] - ss[s][j]);
        }
    }

    void updV(int row){
        if (m < row) r->updV(row);
        else if (m > row) l->updV(row);

        FOR(i,0,C-1) FOR(j,0,C-1){
            val[i][j] = INF;
            FOR(k,0,C-1) val[i][j] = min(val[i][j], l->val[i][k] + r->val[k][j] + V[m][k]);
        }
    }
    
    void updH(int row){
        if (s == e){
            FOR(i,0,C-1) FOR(j,0,C-1) val[i][j] = abs(ss[s][i] - ss[s][j]);
            return;
        }
        if (row > m) r->updH(row);
        else l->updH(row);
        FOR(i,0,C-1) FOR(j,0,C-1){
            val[i][j] = INF;
            FOR(k,0,C-1) val[i][j] = min(val[i][j], l->val[i][k] + r->val[k][j] + V[m][k]);
        }
    }
}*root;
void init(int R, int C, int H[5000][200], int V[5000][200]) {
    ::R = R; ::C = C;
    FOR(i,0,R-1) FOR(j,0,C-1){
        ::H[i][j] = H[i][j];
        ::V[i][j] = V[i][j];
    }
    FOR(i,0,R-1){
        ss[i][0] = 0;
        
        FOR(j,1,C-1){
            ss[i][j] = ss[i][j-1] + H[i][j-1];
        }
    }
    root = new node(0,R-1);

    /*
    FOR(i,0,C-1){
        FOR(j,0,C-1) cout << root->val[i][j] << ' ';
        cout << '\n';
    }
    */
}

void changeH(int P, int Q, int W) {
    H[P][Q] = W; 
    FOR(j,1,C-1) ss[P][j] = ss[P][j-1] + H[P][j-1];

    root->updH(P);
}

void changeV(int P, int Q, int W) {
    V[P][Q] = W;
    root->updV(P);
}

int escape(int V1, int V2) {
    return root->val[V1][V2];
}

Compilation message

grader.c: In function 'int main()':
grader.c:15:6: warning: variable 'res' set but not used [-Wunused-but-set-variable]
   15 |  int res;
      |      ^~~
# 결과 실행 시간 메모리 Grader output
1 Correct 36 ms 78996 KB Output is correct
2 Correct 37 ms 79048 KB Output is correct
3 Correct 115 ms 81944 KB Output is correct
4 Correct 38 ms 79060 KB Output is correct
5 Correct 37 ms 79068 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 0 ms 308 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 340 KB Output is correct
2 Correct 1 ms 340 KB Output is correct
3 Correct 1 ms 340 KB Output is correct
4 Correct 2 ms 1108 KB Output is correct
5 Correct 1 ms 1080 KB Output is correct
6 Correct 1 ms 1108 KB Output is correct
7 Correct 1 ms 1108 KB Output is correct
8 Correct 1 ms 980 KB Output is correct
9 Correct 1 ms 1108 KB Output is correct
10 Correct 1 ms 1108 KB Output is correct
11 Correct 63 ms 3492 KB Output is correct
12 Correct 1 ms 1108 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 899 ms 17012 KB Output is correct
2 Correct 818 ms 16996 KB Output is correct
3 Correct 925 ms 17292 KB Output is correct
4 Correct 831 ms 17176 KB Output is correct
5 Correct 851 ms 17248 KB Output is correct
6 Correct 1 ms 340 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 3929 ms 17172 KB Output is correct
10 Correct 1 ms 340 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 82976 KB Output is correct
2 Correct 38 ms 82956 KB Output is correct
3 Correct 40 ms 83040 KB Output is correct
4 Correct 70 ms 84328 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 863 ms 17136 KB Output is correct
2 Correct 791 ms 16972 KB Output is correct
3 Correct 903 ms 17332 KB Output is correct
4 Correct 811 ms 17180 KB Output is correct
5 Correct 834 ms 17216 KB Output is correct
6 Correct 39 ms 83020 KB Output is correct
7 Correct 38 ms 83052 KB Output is correct
8 Correct 39 ms 82996 KB Output is correct
9 Correct 70 ms 84372 KB Output is correct
10 Correct 37 ms 79048 KB Output is correct
11 Correct 37 ms 79188 KB Output is correct
12 Correct 101 ms 81868 KB Output is correct
13 Correct 37 ms 79040 KB Output is correct
14 Correct 37 ms 79092 KB Output is correct
15 Correct 0 ms 308 KB Output is correct
16 Correct 1 ms 308 KB Output is correct
17 Correct 0 ms 340 KB Output is correct
18 Correct 1 ms 1108 KB Output is correct
19 Correct 1 ms 1108 KB Output is correct
20 Correct 1 ms 1108 KB Output is correct
21 Correct 1 ms 1108 KB Output is correct
22 Correct 1 ms 1108 KB Output is correct
23 Correct 1 ms 980 KB Output is correct
24 Correct 1 ms 1108 KB Output is correct
25 Correct 63 ms 3404 KB Output is correct
26 Correct 1 ms 1108 KB Output is correct
27 Correct 3923 ms 17180 KB Output is correct
28 Runtime error 1884 ms 262144 KB Execution killed with signal 9
29 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 875 ms 17012 KB Output is correct
2 Correct 795 ms 16996 KB Output is correct
3 Correct 918 ms 17176 KB Output is correct
4 Correct 811 ms 17252 KB Output is correct
5 Correct 828 ms 17292 KB Output is correct
6 Correct 38 ms 82952 KB Output is correct
7 Correct 39 ms 83016 KB Output is correct
8 Correct 40 ms 83064 KB Output is correct
9 Correct 72 ms 84396 KB Output is correct
10 Correct 37 ms 79052 KB Output is correct
11 Correct 39 ms 79076 KB Output is correct
12 Correct 100 ms 81808 KB Output is correct
13 Correct 37 ms 79052 KB Output is correct
14 Correct 38 ms 79032 KB Output is correct
15 Runtime error 7239 ms 262144 KB Execution killed with signal 9
16 Halted 0 ms 0 KB -