답안 #1107466

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1107466 2024-11-01T09:16:51 Z chaoslong 악어의 지하 도시 (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 <ll,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;

ll 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]) {
                d[u][0] = dv;
            } else if(dv < d[u][1]) {
                d[u][1] = dv;
            }
        }
        if(d[v][1] < d[u][0]) {
            d[u][0] = d[v][1];
        } else if(d[v][1] < d[u][1]) {
            d[u][1] = d[v][1];
        }
    }
}

int travel_plan(int n, int m, int r[][2], int l[], int k, int p[]) {
    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][2];
}

//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--) 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:88:9: warning: "/*" within comment [-Wcomment]
   88 | /**  /\_/\
      |          
crocodile.cpp: In function 'int travel_plan(int, int, int (*)[2], int*, int, int*)':
crocodile.cpp:61:18: warning: array subscript 2 is above array bounds of 'long long int [2]' [-Warray-bounds]
   61 |     return d[0][2];
      |            ~~~~~~^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 4432 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 4432 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 4432 KB Output isn't correct
2 Halted 0 ms 0 KB -