Có M tài khoản đánh số 0..M-1, ban đầu mỗi tài khoản có số dư balance_i. Có T giao dịch chuyển x đồng từ tài khoản u sang v. Các giao dịch được chạy song song bởi T thread. Dùng synchronized trên một Object lock GLOBAL DUY NHẤT để đảm bảo cập nhật atomically. Sau khi join tất cả, in M số dư cuối cùng cách nhau bởi dấu cách (theo thứ tự tài khoản 0..M-1).
Dòng 1: M T (1 ≤ M ≤ 100; 0 ≤ T ≤ 1000). Dòng 2: M số dư ban đầu (0 ≤ balance ≤ 10^9). T dòng sau: u v x (0 ≤ u,v < M; u ≠ v; 1 ≤ x ≤ 10^6). Có thể balance[u] thiếu — vẫn cứ trừ (cho phép âm).
1 ≤ M ≤ 100; 0 ≤ T ≤ 1000
Một dòng M số dư cuối, theo thứ tự tài khoản 0..M-1.
Ví dụ:
Đầu vào:
3 2
100 200 300
0 1 50
2 0 30
Đầu ra:
80 250 270
Giải thích:
Đang tải editor...