# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
810639 | 2023-08-06T13:09:21 Z | AndiR | Firefighting (NOI20_firefighting) | C++14 | 450 ms | 96644 KB |
#include <iostream> #include <vector> using namespace std; typedef long long ll; const ll Nmax=3000000; ll n, tot; ll k; struct node{ bool cov; ll dist; }v[Nmax]; ll sol[Nmax]; vector <pair<ll, ll>> ad[Nmax]; void cmp(bool& t, ll& mx, bool nt, ll nmx){ if (t>nt || t==nt && nmx>mx){ t=nt; mx=nmx; } } void dfs(ll nod, ll p){ ll qc=-1, qnc=0; for (ll i=0; i<ad[nod].size(); i++){ if (ad[nod][i].first!=p){ dfs(ad[nod][i].first, nod); /// nu are cover if (v[ad[nod][i].first].cov==0){ ///trb sa ii se puna statie if (v[ad[nod][i].first].dist+ad[nod][i].second>k){ sol[tot++]=ad[nod][i].first; if (ad[nod][i].second<=k) qc=k-ad[nod][i].second; } /// i se amana statia else qnc=max(qnc, v[ad[nod][i].first].dist+ad[nod][i].second); } ///are cover else{ ///coverul cuprinde statia curenta if (v[ad[nod][i].first].dist>=ad[nod][i].second) qc=max(qc, v[ad[nod][i].first].dist-ad[nod][i].second); } } } if (qc>=qnc){ v[nod].cov=1; v[nod].dist=qc; } else{ v[nod].cov=0; v[nod].dist=qnc; } //cout<<nod<<' '<<v[nod].cov<<' '<<v[nod].dist<<'\n'; if (qc<qnc && p==-1) sol[tot++]=nod; } int main() { cin>>n>>k; ll a, b, d; for (ll i=1; i<n; i++){ cin>>a>>b>>d; a--; b--; ad[a].push_back({b, d}); ad[b].push_back({a, d}); } dfs(0, -1); if (n==1) cout<<"1\n1"; else{ cout<<tot<<'\n'; for (ll i=0; i<tot; i++) cout<<sol[i]+1<<' '; } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 440 ms | 96180 KB | Output is correct |
2 | Correct | 407 ms | 96076 KB | Output is correct |
3 | Correct | 139 ms | 80392 KB | Output is correct |
4 | Correct | 430 ms | 95420 KB | Output is correct |
5 | Correct | 32 ms | 70732 KB | Output is correct |
6 | Correct | 32 ms | 70736 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 32 ms | 70756 KB | Output is correct |
2 | Correct | 31 ms | 70748 KB | Output is correct |
3 | Correct | 32 ms | 70680 KB | Output is correct |
4 | Correct | 40 ms | 70808 KB | Output is correct |
5 | Correct | 33 ms | 70744 KB | Output is correct |
6 | Correct | 40 ms | 70700 KB | Output is correct |
7 | Correct | 53 ms | 70636 KB | Output is correct |
8 | Correct | 51 ms | 70708 KB | Output is correct |
9 | Correct | 32 ms | 70740 KB | Output is correct |
10 | Correct | 33 ms | 70756 KB | Output is correct |
11 | Correct | 32 ms | 70740 KB | Output is correct |
12 | Correct | 32 ms | 70748 KB | Output is correct |
13 | Correct | 33 ms | 70740 KB | Output is correct |
14 | Correct | 32 ms | 70700 KB | Output is correct |
15 | Correct | 33 ms | 70748 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 36 ms | 70756 KB | Output is correct |
2 | Correct | 34 ms | 70668 KB | Output is correct |
3 | Correct | 41 ms | 70664 KB | Output is correct |
4 | Correct | 33 ms | 70664 KB | Output is correct |
5 | Correct | 36 ms | 70868 KB | Output is correct |
6 | Correct | 33 ms | 70652 KB | Output is correct |
7 | Correct | 35 ms | 70732 KB | Output is correct |
8 | Correct | 33 ms | 70768 KB | Output is correct |
9 | Correct | 37 ms | 70672 KB | Output is correct |
10 | Correct | 33 ms | 70676 KB | Output is correct |
11 | Correct | 33 ms | 70732 KB | Output is correct |
12 | Correct | 33 ms | 70760 KB | Output is correct |
13 | Correct | 34 ms | 70704 KB | Output is correct |
14 | Correct | 34 ms | 70712 KB | Output is correct |
15 | Correct | 34 ms | 70740 KB | Output is correct |
16 | Correct | 38 ms | 70724 KB | Output is correct |
17 | Correct | 37 ms | 70676 KB | Output is correct |
18 | Correct | 33 ms | 70740 KB | Output is correct |
19 | Correct | 34 ms | 70748 KB | Output is correct |
20 | Correct | 33 ms | 70728 KB | Output is correct |
21 | Correct | 32 ms | 70728 KB | Output is correct |
22 | Correct | 32 ms | 70748 KB | Output is correct |
23 | Correct | 32 ms | 70760 KB | Output is correct |
24 | Correct | 33 ms | 70736 KB | Output is correct |
25 | Correct | 32 ms | 70740 KB | Output is correct |
26 | Correct | 32 ms | 70752 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 418 ms | 96152 KB | Output is correct |
2 | Correct | 200 ms | 83952 KB | Output is correct |
3 | Correct | 185 ms | 84508 KB | Output is correct |
4 | Correct | 200 ms | 82584 KB | Output is correct |
5 | Correct | 31 ms | 70700 KB | Output is correct |
6 | Correct | 31 ms | 70660 KB | Output is correct |
7 | Correct | 312 ms | 92876 KB | Output is correct |
8 | Correct | 307 ms | 92848 KB | Output is correct |
9 | Correct | 319 ms | 92924 KB | Output is correct |
10 | Correct | 360 ms | 93000 KB | Output is correct |
11 | Correct | 450 ms | 96644 KB | Output is correct |
12 | Correct | 240 ms | 87392 KB | Output is correct |
13 | Correct | 141 ms | 81148 KB | Output is correct |
14 | Correct | 217 ms | 86324 KB | Output is correct |
15 | Correct | 285 ms | 89548 KB | Output is correct |
16 | Correct | 305 ms | 90792 KB | Output is correct |
17 | Correct | 296 ms | 87676 KB | Output is correct |
18 | Correct | 281 ms | 87196 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 33 ms | 70912 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 374 ms | 91184 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |