답안 #1100100

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1100100 2024-10-12T17:26:09 Z _8_8_ 치료 계획 (JOI20_treatment) C++17
0 / 100
960 ms 524288 KB
#include <bits/stdc++.h>
    
using namespace std;
    
typedef long long ll;
    
const int  N = 2e5 + 12, MOD = (int)1e9 + 7;
    
const ll inf = 1e18;
ll res = inf, d[N];
int n, m;
vector<array<int, 4>> a;
    
bool cmp(array<int, 4> x, array<int, 4> y) {
    return make_pair(x[1], x[2]) < make_pair(y[1], y[2]);
}
vector<int> g[N];
void test() {
    cin >> n >> m;
    a.resize(m);
    for(int i = 0; i < m; i++) {
        cin >> a[i][0] >> a[i][1] >> a[i][2] >> a[i][3], d[i] = inf;
    }
    for(int i = 0; i < m; i++) {
        for(int j = 0; j < m; j++) {
            if (a[i][0] <= a[j][0]) {
				if (a[j][1] <= a[i][2] - (a[j][0] - a[i][0])) {
					g[i].push_back(j);
				}
 			}
			if (a[i][0] >= a[j][0]) {
				if (a[i][2] >= a[j][1] + (a[i][0] - a[j][0])) {
					g[i].push_back(j);
				}
			}
        }
    }
    set<pair<ll, int>> st;
    for(int i = 0; i < m; i++) {    
        if(a[i][1] == 1) {
            st.insert({0, i});
            d[i] = a[i][3];
        }
    }
    while(!st.empty()) {
        auto [w, v] = (*st.begin());
        st.erase(st.begin());
        for(int to:g[v]) {
            if(d[to] > d[v] + a[to][3]) {
                st.erase({d[to], to});
                d[to] = d[v] + a[to][3];
                st.insert({d[to], to});
            }
        }
    }
    for(int i = 0; i < m; i++) if(a[i][2] == n){
        res = min(res, d[i]);
    }
    if(res == inf) {
        res = -1;
    }
    cout << res << '\n';
}
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0); 
    
    int t = 1; 
    // cin >> t;
    
    while(t--) 
        test();
    
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Runtime error 960 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4956 KB Output is correct
2 Incorrect 2 ms 4960 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4956 KB Output is correct
2 Incorrect 2 ms 4960 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 960 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -