Submission #1501676


Source Code Expand

#include <bits/stdc++.h>
#define ll long long
#define INF (1LL << 60)
#define MOD 1000000007
#define EPS 1e-10
#define rep(i,n) for(int i=0;i<(int)n;++i)
#define each(a, b) for(auto (a): (b))
#define all(v) (v).begin(),(v).end()
#define fi first
#define se second
#define pb push_back
#define show(x) cout<<#x<<" = "<<(x)<<endl
#define spair(p) cout<<#p<<": "<<p.fi<<" "<<p.se<<endl
#define svec(v) cout<<#v<<":";rep(kbrni,v.size())cout<<" "<<v[kbrni];cout<<endl
#define sset(s) cout<<#s<<":";each(kbrni,s)cout<<" "<<kbrni;cout<<endl
#define smap(m) cout<<#m<<":";each(kbrni,m)cout<<" {"<<kbrni.first<<":"<<kbrni.second<<"}";cout<<endl
using namespace std;

typedef pair<int,int>P;

const int MAX_N = 100005;

vector<int> bx[MAX_N],by[MAX_N];
ll dpx[MAX_N];
ll dpy[MAX_N];

int main()
{
    cin.tie(0);
    ios::sync_with_stdio(false);
    int w,h,q;
    cin >> w >> h >> q;
    int T = 0;
    rep(i,q){
        int a,b,c;
        cin >> a >> b >> c;
        T = max(T,a-1);
        if(b == 0){
            bx[a-1].pb(c-1);
        }else{
            by[a-1].pb(c-1);
        }
    }
    rep(i,w){
        dpx[i] = 0;
    }
    rep(i,h){
        dpy[i] = 0;
    }
    rep(i,T+1){
        sort(all(bx[i]));
        sort(all(by[i]));
        ll mn = INF;
        rep(j,bx[i].size()){
            if(j+1 < (int)bx[i].size() && bx[i][j+1] - bx[i][j] == 1){
                mn = min(mn+1,dpx[bx[i][j]]);
            }else{
                mn = min(mn,dpx[bx[i][j]]);
                dpx[bx[i][j]+1] = min(dpx[bx[i][j]+1],mn+1);
                mn = INF;
            }
        }
        for(int j=(int)bx[i].size()-1;j>=0;j--){
            if(j-1 >= (int)bx[i].size() && bx[i][j] - bx[i][j-1] == 1){
                mn = min(mn+1,dpx[bx[i][j]]);
            }else{
                if(bx[i][j] == 0){
                    mn = INF;
                }else{
                    mn = min(mn,dpx[bx[i][j]]);
                    dpx[bx[i][j]-1] = min(dpx[bx[i][j]-1],mn+1);
                    mn = INF;
                }
            }
        }
        rep(j,by[i].size()){
            if(j+1 < (int)by[i].size() && by[i][j+1] - by[i][j] == 1){
                mn = min(mn+1,dpy[by[i][j]]);
            }else{
                mn = min(mn,dpy[by[i][j]]);
                dpy[by[i][j]+1] = min(dpy[by[i][j]+1],mn+1);
                mn = INF;
            }
        }
        for(int j=(int)by[i].size()-1;j>=0;j--){
            if(j-1 >= (int)by[i].size() && by[i][j] - by[i][j-1] == 1){
                mn = min(mn+1,dpy[by[i][j]]);
            }else{
                if(by[i][j] == 0){
                    mn = INF;
                }else{
                    mn = min(mn,dpy[by[i][j]]);
                    dpy[by[i][j]-1] = min(dpy[by[i][j]-1],mn+1);
                    mn = INF;
                }
            }
        }
        rep(j,bx[i].size()){
            dpx[bx[i][j]] = INF;
        }
        rep(j,by[i].size()){
            dpy[by[i][j]] = INF;
        }
    }
    ll mn1 = INF;
    rep(i,w){
        mn1 = min(mn1,dpx[i]);
    }
    ll mn2 = INF;
    rep(i,h){
        mn2 = min(mn2,dpy[i]);
    }
    if(mn1 + mn2 > (1LL << 40)){
        cout << "-1\n";
    }else{
        cout << mn1 + mn2 << endl;
    }
    return 0;
}

Submission Info

Submission Time
Task C - ビーム
User kopricky
Language C++14 (GCC 5.4.1)
Score 0
Code Size 3343 Byte
Status WA
Exec Time 37 ms
Memory 8960 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 0 / 30 0 / 70
Status
AC × 2
WA × 1
AC × 30
WA × 3
AC × 43
WA × 20
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt
Subtask2 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt
Case Name Status Exec Time Memory
sample_01.txt AC 3 ms 4992 KB
sample_02.txt WA 3 ms 4992 KB
sample_03.txt AC 3 ms 4992 KB
subtask1_01.txt AC 3 ms 4992 KB
subtask1_02.txt AC 3 ms 4992 KB
subtask1_03.txt AC 3 ms 4992 KB
subtask1_04.txt AC 3 ms 4992 KB
subtask1_05.txt AC 3 ms 4992 KB
subtask1_06.txt AC 3 ms 4992 KB
subtask1_07.txt AC 3 ms 4992 KB
subtask1_08.txt WA 3 ms 4992 KB
subtask1_09.txt AC 3 ms 4992 KB
subtask1_10.txt AC 3 ms 4992 KB
subtask1_11.txt AC 3 ms 4992 KB
subtask1_12.txt AC 3 ms 4992 KB
subtask1_13.txt AC 3 ms 4992 KB
subtask1_14.txt AC 3 ms 4992 KB
subtask1_15.txt AC 3 ms 4992 KB
subtask1_16.txt AC 3 ms 4992 KB
subtask1_17.txt AC 3 ms 4992 KB
subtask1_18.txt AC 3 ms 4992 KB
subtask1_19.txt AC 3 ms 4992 KB
subtask1_20.txt AC 3 ms 4992 KB
subtask1_21.txt AC 3 ms 4992 KB
subtask1_22.txt AC 3 ms 4992 KB
subtask1_23.txt WA 3 ms 4992 KB
subtask1_24.txt AC 3 ms 4992 KB
subtask1_25.txt AC 3 ms 4992 KB
subtask1_26.txt AC 3 ms 4992 KB
subtask1_27.txt AC 3 ms 4992 KB
subtask1_28.txt AC 3 ms 4992 KB
subtask1_29.txt AC 3 ms 4992 KB
subtask1_30.txt AC 3 ms 4992 KB
subtask2_01.txt AC 34 ms 7424 KB
subtask2_02.txt AC 34 ms 7424 KB
subtask2_03.txt AC 33 ms 8064 KB
subtask2_04.txt WA 27 ms 5504 KB
subtask2_05.txt AC 29 ms 6016 KB
subtask2_06.txt AC 37 ms 8960 KB
subtask2_07.txt AC 34 ms 7424 KB
subtask2_08.txt WA 27 ms 5632 KB
subtask2_09.txt WA 26 ms 5632 KB
subtask2_10.txt AC 28 ms 5888 KB
subtask2_11.txt AC 28 ms 6272 KB
subtask2_12.txt WA 27 ms 5504 KB
subtask2_13.txt WA 33 ms 7552 KB
subtask2_14.txt WA 34 ms 7552 KB
subtask2_15.txt AC 3 ms 4992 KB
subtask2_16.txt AC 3 ms 4992 KB
subtask2_17.txt WA 27 ms 5504 KB
subtask2_18.txt AC 34 ms 8448 KB
subtask2_19.txt AC 35 ms 7680 KB
subtask2_20.txt WA 27 ms 5760 KB
subtask2_21.txt WA 31 ms 6528 KB
subtask2_22.txt WA 30 ms 6272 KB
subtask2_23.txt AC 31 ms 8064 KB
subtask2_24.txt WA 28 ms 5632 KB
subtask2_25.txt WA 28 ms 5632 KB
subtask2_26.txt WA 26 ms 5504 KB
subtask2_27.txt WA 27 ms 5376 KB
subtask2_28.txt WA 26 ms 5376 KB
subtask2_29.txt WA 27 ms 5760 KB
subtask2_30.txt WA 30 ms 6144 KB