Submission #1159891


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

#define rep(i,x,y) for(int i=(x);i<(y);++i)
#define debug(x) #x << "=" << (x)

#ifdef DEBUG
#define _GLIBCXX_DEBUG
#define print(x) std::cerr << debug(x) << " (L:" << __LINE__ << ")" << std::endl
#else
#define print(x)
#endif

const int inf=1e9;
const int64_t inf64=1e18;
const double eps=1e-9;

template <typename T> ostream &operator<<(ostream &os, const vector<T> &vec){
    os << "[";
    for (const auto &v : vec) {
    	os << v << ",";
    }
    os << "]";
    return os;
}

using i64=int64_t;

void solve(){
    int wh[2],q;
    cin >> wh[0] >> wh[1] >> q;
    vector<int> b[2][100000];
    rep(i,0,q){
        int t,d,x;
        cin >> t >> d >> x;
        --x;
        --t;
        b[d][t].push_back(x);
    }

    static int dp[100000],ans=0;
    rep(i,0,2){
        fill_n((int*)dp,100000,0);
        rep(t,0,100000){
            set<int> p,q;
            for(int x:b[i][t]){
                p.insert(x);
                if(x-1>=0) q.insert(x-1);
                if(x+1<wh[i]) q.insert(x+1);
            }
            for(auto x:q){
                if(p.find(x)!=p.end()) continue;
                for(int x_=x-1; x_>=0 and p.find(x_)!=p.end(); --x_) dp[x]=min(dp[x],dp[x_]+x-x_);
                for(int x_=x+1; x_<wh[i] and p.find(x_)!=p.end(); ++x_) dp[x]=min(dp[x],dp[x_]+x_-x);
            }
            for(int x:b[i][t]) dp[x]=inf;
        }
        int tmp=inf;
        rep(j,0,wh[i]) tmp=min(tmp,dp[j]);
        if(tmp>=inf){
            cout << -1 << endl;
            return;
        }
        ans+=tmp;
    }
    cout << ans << endl;
}

int main(){
    std::cin.tie(0);
    std::ios::sync_with_stdio(false);
    cout.setf(ios::fixed);
    cout.precision(10);
    solve();
    return 0;
}

Submission Info

Submission Time
Task C - ビーム
User walkre
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1834 Byte
Status AC
Exec Time 103 ms
Memory 8448 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 3
AC × 33
AC × 63
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 5 ms 5376 KB
sample_02.txt AC 4 ms 5376 KB
sample_03.txt AC 4 ms 5376 KB
subtask1_01.txt AC 5 ms 5376 KB
subtask1_02.txt AC 4 ms 5376 KB
subtask1_03.txt AC 5 ms 5376 KB
subtask1_04.txt AC 4 ms 5376 KB
subtask1_05.txt AC 5 ms 5376 KB
subtask1_06.txt AC 5 ms 5376 KB
subtask1_07.txt AC 5 ms 5376 KB
subtask1_08.txt AC 5 ms 5376 KB
subtask1_09.txt AC 5 ms 5376 KB
subtask1_10.txt AC 5 ms 5376 KB
subtask1_11.txt AC 5 ms 5376 KB
subtask1_12.txt AC 4 ms 5376 KB
subtask1_13.txt AC 4 ms 5376 KB
subtask1_14.txt AC 4 ms 5376 KB
subtask1_15.txt AC 5 ms 5376 KB
subtask1_16.txt AC 4 ms 5376 KB
subtask1_17.txt AC 4 ms 5376 KB
subtask1_18.txt AC 4 ms 5376 KB
subtask1_19.txt AC 4 ms 5376 KB
subtask1_20.txt AC 4 ms 5376 KB
subtask1_21.txt AC 5 ms 5376 KB
subtask1_22.txt AC 5 ms 5376 KB
subtask1_23.txt AC 4 ms 5376 KB
subtask1_24.txt AC 4 ms 5376 KB
subtask1_25.txt AC 5 ms 5376 KB
subtask1_26.txt AC 5 ms 5376 KB
subtask1_27.txt AC 5 ms 5376 KB
subtask1_28.txt AC 5 ms 5376 KB
subtask1_29.txt AC 4 ms 5376 KB
subtask1_30.txt AC 4 ms 5376 KB
subtask2_01.txt AC 49 ms 7808 KB
subtask2_02.txt AC 49 ms 7808 KB
subtask2_03.txt AC 43 ms 8448 KB
subtask2_04.txt AC 92 ms 6528 KB
subtask2_05.txt AC 103 ms 8064 KB
subtask2_06.txt AC 50 ms 7808 KB
subtask2_07.txt AC 50 ms 7808 KB
subtask2_08.txt AC 64 ms 6016 KB
subtask2_09.txt AC 64 ms 6016 KB
subtask2_10.txt AC 100 ms 6784 KB
subtask2_11.txt AC 23 ms 5888 KB
subtask2_12.txt AC 85 ms 5888 KB
subtask2_13.txt AC 46 ms 7936 KB
subtask2_14.txt AC 49 ms 7808 KB
subtask2_15.txt AC 6 ms 5376 KB
subtask2_16.txt AC 5 ms 5376 KB
subtask2_17.txt AC 87 ms 5888 KB
subtask2_18.txt AC 53 ms 8064 KB
subtask2_19.txt AC 50 ms 7296 KB
subtask2_20.txt AC 79 ms 6016 KB
subtask2_21.txt AC 42 ms 6912 KB
subtask2_22.txt AC 44 ms 6656 KB
subtask2_23.txt AC 40 ms 8448 KB
subtask2_24.txt AC 50 ms 6016 KB
subtask2_25.txt AC 76 ms 6016 KB
subtask2_26.txt AC 83 ms 5888 KB
subtask2_27.txt AC 62 ms 5760 KB
subtask2_28.txt AC 66 ms 5888 KB
subtask2_29.txt AC 90 ms 6784 KB
subtask2_30.txt AC 44 ms 6528 KB