Submission #1107492

# Submission time Handle Problem Language Result Execution time Memory
1107492 2024-11-01T09:45:29 Z chaoslong Crocodile's Underground City (IOI11_crocodile) C++14
0 / 100
1 ms 4432 KB
// Calm down.
// Think three times, code twice.
#include "bits/stdc++.h"
#include "crocodile.h"
#define forr(_a,_b,_c) for(int _a = (_b); _a <= (_c); ++_a)
#define ford(_a,_b,_c) for(int _a = (_b) + 1; _a --> (_c);)
#define forf(_a,_b,_c) for(int _a = (_b); _a < (_c); ++_a)
#define st first
#define nd second
#define ll long long
#define ull unsigned long long
#define pii pair <int,int>
#define pll pair <ll,ll>
#define piii pair <int,pii>
#define vi vector <int>
#define pb push_back
#define mp make_pair
#define all(x) begin(x),end(x)
#define mask(i) (1LL << (i))
#define bit(x, i) (((x) >> (i)) & 1)
#define bp __builtin_popcountll
#define file "test"

using namespace std;
const int N = 1000 + 5;
const int mod = 1e9 + 7; // 998244353
const ll oo = 1e18;

int d[N][2];
bool check[N];
vector<pii> a[N];

void dfs(int u, int par) {
    for(pii e: a[u]) {
        int v = e.nd; ll dv = e.st;
        if(v == par) continue;
        dfs(v, u);
        if(check[v]) {
            if(dv < d[u][0]) {
                int tmp = d[u][0];
                d[u][0] = dv;
                d[u][1] = tmp;
            } else if(dv < d[u][1]) {
                d[u][1] = dv;
            }
        }
        if(d[v][1] + dv < d[u][0]) {
            int tmp = d[u][0];
            d[u][0] = d[v][1] + dv;
            d[u][1] = tmp;
        } else if(d[v][1] + dv< d[u][1]) {
            d[u][1] = d[v][1] + dv;
        }
//        cout << u << " " << v << " " << d[u][0] << " " << d[u][1] << "\n";
    }
}

//int n, m, r[N][2], l[N], k, p[N];
//int n, int m, int r[][2], int l[], int k, int p[]

int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]) {
//    cin >> n >> m >> k;
    forf(i, 0, m) {
//        int u, v, val; cin >> u >> v >> val;
//        a[u].pb({val, v});
//        a[v].pb({val, u});
        a[r[i][0]].pb({l[i], r[i][1]});
        a[r[i][1]].pb({l[i], r[i][1]});
    }
    forf(i, 0, k) {
//        int x; cin >> x;
        check[p[i]] = 1;
    }
//    forf(i, 0, m) {
//        a[r[i][0]].pb({l[i], r[i][1]});
//        a[r[i][1]].pb({l[i], r[i][0]});
//    }
//    forf(i, 0, k) check[p[i]] = 1;
    memset(d, 63, sizeof d);
    dfs(0, 0);
    return d[0][1];
}

//signed main(){
//    ios_base::sync_with_stdio(0);cin.tie(0);
//    #ifdef LOCAL
//        freopen(file".inp","r",stdin);
//        freopen(file".out","w",stdout);
//    #endif
//    int t = 1;
//    //cin >> t;
//    while(t--) cout << travel_plan();
//}
/*
1.self check:
2.long long
3.size of array
4.code for testing
5.initializing
6.modulo number
*/
/**
  ∧__∧
(`•ω• )づ__∧
(つ  /( •ω•。)
  しーJ (nnノ) pat pat
**/
/**  /\_/\
*   (= ._.)
*   / >☕ \>💻
**/

Compilation message

crocodile.cpp:108:9: warning: "/*" within comment [-Wcomment]
  108 | /**  /\_/\
      |
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 4432 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 4432 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 1 ms 4432 KB Output isn't correct
2 Halted 0 ms 0 KB -