제출 #1246425

#제출 시각아이디문제언어결과실행 시간메모리
1246425CodeLakVNTransport (COCI19_transport)C++17
0 / 100
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define task "main" #define no "NO" #define yes "YES" #define F first #define S second #define vec vector #define _mp make_pair #define ii pair<int, int> #define sz(x) (int)x.size() #define all(x) x.begin(), x.end() #define evoid(val) return void(std::cout << val) #define FOR(i, a, b) for(int i = (a); i <= (b); ++i) #define FOD(i, b, a) for(int i = (b); i >= (a); --i) const int MAX_N = (int)1e5 + 5; int numNode; int a[MAX_N]; vector<ii> adj[MAX_N]; namespace sub1 { bool valid() { return numNode <= 5000; } int ans = 0; void dfs(int u, int p, long long sum) { sum += a[u]; for (ii e : adj[u]) { int v = e.F, w = e.S; if (v == p) continue; if (sum < w) continue; ans++; dfs(v, u, sum - w); } } void solve() { FOR(u, 1, numNode) dfs(u, -1, 0); cout << ans << "\n"; } } namespace sub2 { bool valid() { FOR(i, 1, numNode) if ((int)adj[i].size() > 2) return false; return true; } long long ans = 0; int d[MAX_N]; void solve() { FOR(i, 1, numNode - 1) { for (ii e : adj[i]) if (e.F != i - 1) d[i + 1] = e.S; } int l = 1; long long sum = a[1]; FOR(i, 2, numNode) { if (sum < d[i]) sum = 0, l = i; else { sum -= d[i]; ans += (i - l); } sum += a[i]; } cout << ans << "\n"; } } void solve() { cin >> numNode; FOR(i, 1, numNode) cin >> a[i]; FOR(i, 1, numNode - 1) { int u, v, w; cin >> u >> v >> w; adj[u].push_back({v, w}); adj[v].push_back({u, w}); } if (sub1::valid()) sub1::solve(); } int32_t main() { if (fopen(task".inp", "r")) { freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout); } ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); bool multitest = 0; int numTest = 1; if (multitest) cin >> numTest; while (numTest--) { solve(); } return 0; } /* Lak lu theo dieu nhac!!!! */

컴파일 시 표준 에러 (stderr) 메시지

Main.cpp: In function 'int32_t main()':
Main.cpp:93:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   93 |         freopen(task".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:94:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   94 |         freopen(task".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...