답안 #813396

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
813396 2023-08-07T16:58:14 Z marvinthang Security Guard (JOI23_guard) C++17
25 / 100
79 ms 34636 KB
/*************************************
*    author: marvinthang             *
*    created: 22.03.2023 18:52:02    *
*************************************/

#include <bits/stdc++.h>

using namespace std;

#define                  fi  first
#define                  se  second
#define                left  ___left
#define               right  ___right
#define                TIME  (1.0 * clock() / CLOCKS_PER_SEC)
#define             MASK(i)  (1LL << (i))
#define           BIT(x, i)  ((x) >> (i) & 1)
#define  __builtin_popcount  __builtin_popcountll
#define              ALL(v)  (v).begin(), (v).end()
#define           REP(i, n)  for (int i = 0, _n = (n); i < _n; ++i)
#define          REPD(i, n)  for (int i = (n); i--; )
#define        FOR(i, a, b)  for (int i = (a), _b = (b); i < _b; ++i) 
#define       FORD(i, b, a)  for (int i = (b), _a = (a); --i >= _a; ) 
#define       FORE(i, a, b)  for (int i = (a), _b = (b); i <= _b; ++i) 
#define      FORDE(i, b, a)  for (int i = (b), _a = (a); i >= _a; --i) 
#define        scan_op(...)  istream & operator >> (istream &in, __VA_ARGS__ &u)
#define       print_op(...)  ostream & operator << (ostream &out, const __VA_ARGS__ &u)
#ifdef LOCAL
    #include "debug.h"
#else
    #define file(name) if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
    #define DB(...) 23
    #define db(...) 23
    #define debug(...) 23
#endif

template <class U, class V> scan_op(pair <U, V>)  { return in >> u.fi >> u.se; }
template <class T> scan_op(vector <T>)  { for (size_t i = 0; i < u.size(); ++i) in >> u[i]; return in; }
template <class U, class V> print_op(pair <U, V>)  { return out << '(' << u.first << ", " << u.second << ')'; }
template <size_t i, class T> ostream & print_tuple_utils(ostream &out, const T &tup) { if constexpr(i == tuple_size<T>::value) return out << ")";  else return print_tuple_utils<i + 1, T>(out << (i ? ", " : "(") << get<i>(tup), tup); }
template <class ...U> print_op(tuple<U...>) { return print_tuple_utils<0, tuple<U...>>(out, u); }
template <class Con, class = decltype(begin(declval<Con>()))> typename enable_if <!is_same<Con, string>::value, ostream&>::type operator << (ostream &out, const Con &con) { out << '{'; for (__typeof(con.begin()) it = con.begin(); it != con.end(); ++it) out << (it == con.begin() ? "" : ", ") << *it; return out << '}'; }

// end of template

const int MAX = 2e5 + 5;

int N, M, Q, S[MAX];
vector <int> adj[MAX];

void init(void) {
	cin >> N >> M >> Q;
	FORE(i, 1, N) cin >> S[i]; 
	REP(i, M) {
		int u, v; cin >> u >> v;
		adj[u].push_back(v);
		adj[v].push_back(u);
	}
}

long long res;

void dfs(int u, long long cur) {
	for (int v: adj[u]) {
		adj[v].erase(find(ALL(adj[v]), u));
		res += S[u];
		if (cur + S[u] > S[v]) dfs(v, cur + S[u] - S[v]);
		else {
			res += S[v] - S[u] - cur;
			dfs(v, 0);
		}
	}
}

void process(void) {
	dfs(1, 0);
	cout << res << '\n';
}

int main(void) {
	ios_base::sync_with_stdio(false); cin.tie(nullptr); // cout.tie(nullptr);
	file("guard");
	init();
	process();
	cerr << "Time elapsed: " << TIME << " s.\n";
	return (0^0);
}

Compilation message

guard.cpp: In function 'int main()':
guard.cpp:30:61: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     #define file(name) if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
      |                                                      ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
guard.cpp:81:2: note: in expansion of macro 'file'
   81 |  file("guard");
      |  ^~~~
guard.cpp:30:94: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |     #define file(name) if (fopen(name".inp", "r")) { freopen(name".inp", "r", stdin); freopen(name".out", "w", stdout); }
      |                                                                                       ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
guard.cpp:81:2: note: in expansion of macro 'file'
   81 |  file("guard");
      |  ^~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Correct 70 ms 33068 KB Output is correct
3 Correct 58 ms 33112 KB Output is correct
4 Correct 57 ms 33252 KB Output is correct
5 Correct 59 ms 33152 KB Output is correct
6 Correct 60 ms 33056 KB Output is correct
7 Correct 60 ms 33200 KB Output is correct
8 Correct 2 ms 4948 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Correct 70 ms 33068 KB Output is correct
3 Correct 58 ms 33112 KB Output is correct
4 Correct 57 ms 33252 KB Output is correct
5 Correct 59 ms 33152 KB Output is correct
6 Correct 60 ms 33056 KB Output is correct
7 Correct 60 ms 33200 KB Output is correct
8 Correct 2 ms 4948 KB Output is correct
9 Correct 3 ms 4992 KB Output is correct
10 Correct 66 ms 34192 KB Output is correct
11 Correct 79 ms 34544 KB Output is correct
12 Correct 64 ms 34572 KB Output is correct
13 Correct 66 ms 34124 KB Output is correct
14 Correct 64 ms 34636 KB Output is correct
15 Correct 67 ms 34084 KB Output is correct
16 Correct 66 ms 34172 KB Output is correct
17 Correct 64 ms 34088 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Correct 70 ms 33068 KB Output is correct
3 Correct 58 ms 33112 KB Output is correct
4 Correct 57 ms 33252 KB Output is correct
5 Correct 59 ms 33152 KB Output is correct
6 Correct 60 ms 33056 KB Output is correct
7 Correct 60 ms 33200 KB Output is correct
8 Correct 2 ms 4948 KB Output is correct
9 Correct 3 ms 4992 KB Output is correct
10 Correct 66 ms 34192 KB Output is correct
11 Correct 79 ms 34544 KB Output is correct
12 Correct 64 ms 34572 KB Output is correct
13 Correct 66 ms 34124 KB Output is correct
14 Correct 64 ms 34636 KB Output is correct
15 Correct 67 ms 34084 KB Output is correct
16 Correct 66 ms 34172 KB Output is correct
17 Correct 64 ms 34088 KB Output is correct
18 Incorrect 2 ms 4948 KB Output isn't correct
19 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Correct 70 ms 33068 KB Output is correct
3 Correct 58 ms 33112 KB Output is correct
4 Correct 57 ms 33252 KB Output is correct
5 Correct 59 ms 33152 KB Output is correct
6 Correct 60 ms 33056 KB Output is correct
7 Correct 60 ms 33200 KB Output is correct
8 Correct 2 ms 4948 KB Output is correct
9 Correct 3 ms 4992 KB Output is correct
10 Correct 66 ms 34192 KB Output is correct
11 Correct 79 ms 34544 KB Output is correct
12 Correct 64 ms 34572 KB Output is correct
13 Correct 66 ms 34124 KB Output is correct
14 Correct 64 ms 34636 KB Output is correct
15 Correct 67 ms 34084 KB Output is correct
16 Correct 66 ms 34172 KB Output is correct
17 Correct 64 ms 34088 KB Output is correct
18 Incorrect 2 ms 4948 KB Output isn't correct
19 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Incorrect 2 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4948 KB Output is correct
2 Incorrect 2 ms 4948 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 4948 KB Output is correct
2 Correct 70 ms 33068 KB Output is correct
3 Correct 58 ms 33112 KB Output is correct
4 Correct 57 ms 33252 KB Output is correct
5 Correct 59 ms 33152 KB Output is correct
6 Correct 60 ms 33056 KB Output is correct
7 Correct 60 ms 33200 KB Output is correct
8 Correct 2 ms 4948 KB Output is correct
9 Correct 3 ms 4992 KB Output is correct
10 Correct 66 ms 34192 KB Output is correct
11 Correct 79 ms 34544 KB Output is correct
12 Correct 64 ms 34572 KB Output is correct
13 Correct 66 ms 34124 KB Output is correct
14 Correct 64 ms 34636 KB Output is correct
15 Correct 67 ms 34084 KB Output is correct
16 Correct 66 ms 34172 KB Output is correct
17 Correct 64 ms 34088 KB Output is correct
18 Incorrect 2 ms 4948 KB Output isn't correct
19 Halted 0 ms 0 KB -