답안 #533485

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
533485 2022-03-06T07:21:58 Z Slavita Autobus (COCI22_autobus) C++14
30 / 70
1000 ms 1276 KB
#include <bits/stdc++.h>
#pragma optimize("O3")
#pragma GCC optimize("-O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("fast-math")
//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
#define ve vector<int>
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define pi pair<int,int>
#define all(v) v.begin(),v.end()
#define si(v) (int)v.size()
#define en '\n'
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ordered_muiltiset tree<int, null_type,less_equal<>, rb_tree_tag,tree_order_statistics_node_update>
//#define int long long
using namespace std;
//using namespace __gnu_pbds;
typedef long long ll;
typedef unsigned long long ull;

const int N = 1e3 + 228;
const int big = 1e9 + 228;
const ll llbig = 1e18 + 228;
//ordered_set os; // os.order_of_key(4), (*os.find_by_order(5))
ll n, m, ans, k, q, dp[N][N], mem[N][N];
priority_queue<pair<pair<ll, ll>, ll>> Q;

void upd(ll &a, ll b){
    if (b < a) a = b;
}

//#undef int
int main(){
    //#define int long long
    iostream::sync_with_stdio(false); cin.tie(0); ios_base::sync_with_stdio(false); cout.tie(0);
    //freopen("input.txt","r",stdin);
    //freopen("output.txt","w",stdout);
    cin >> n >> m;
    for (int i = 1; i <= m; i++){
        ll a, b, t;
        cin >> a >> b >> t;
        if (mem[a][b] == 0) mem[a][b] = t;
        else mem[a][b] = min(mem[a][b], t);
    }

    cin >> k >> q;
    while(q--){
        ll start, finish;
        cin >> start >> finish;
        Q.push({{0, 0}, start});

        for (int i = 1; i <= n; i++)
            for (int j = 0; j <= n; j++) dp[i][j] = llbig;
        dp[start][0] = 0;

        for (int kol = 0; kol < k; kol++){
            for (int v = 1; v <= n; v++){
                if (dp[v][kol] == llbig) continue;
                for (int u = 1; u <= n; u++){
                    ll c = mem[v][u];
                    if (u == v) continue;
                    if (!c) continue;
                    upd(dp[u][kol + 1], dp[v][kol] + c);
                }
            }
        }

        ll mn = llbig;
        for (int kol = 0; kol <= k; kol++){
            mn = min(mn, dp[finish][kol]);
        }

        if (mn == llbig) cout << -1 << en;
        else cout << mn << en;
    }
    return 0;
}

Compilation message

Main.cpp:2: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    2 | #pragma optimize("O3")
      |
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 1228 KB Output is correct
2 Correct 13 ms 1276 KB Output is correct
3 Correct 34 ms 1220 KB Output is correct
4 Correct 28 ms 1196 KB Output is correct
5 Correct 90 ms 1260 KB Output is correct
6 Correct 75 ms 1236 KB Output is correct
7 Correct 147 ms 1248 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
7 Correct 768 ms 1236 KB Output is correct
8 Execution timed out 1080 ms 1104 KB Time limit exceeded
9 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 332 KB Output is correct
7 Correct 7 ms 1228 KB Output is correct
8 Correct 13 ms 1276 KB Output is correct
9 Correct 34 ms 1220 KB Output is correct
10 Correct 28 ms 1196 KB Output is correct
11 Correct 90 ms 1260 KB Output is correct
12 Correct 75 ms 1236 KB Output is correct
13 Correct 147 ms 1248 KB Output is correct
14 Correct 768 ms 1236 KB Output is correct
15 Execution timed out 1080 ms 1104 KB Time limit exceeded
16 Halted 0 ms 0 KB -