fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main() {
  5. int t;
  6. cin >> t;
  7. while(t--){
  8. int n;
  9. cin >> n;
  10. int a[n],dp[n],d[n];
  11. for(int i=0;i<n;i++){
  12. cin >> a[i] >> dp[i];
  13. }
  14. for(int i=0;i<n;i++){
  15. cin >> d[i];
  16. }
  17. a[0] += d[0];
  18. int dp_i = dp[0];
  19. dp[0] = max((dp[0]-a[0]+1)/2,dp[0]);
  20. int dp_dif = dp[0] - dp_i;
  21. cout << a[0] << " " << dp[0] << endl;
  22. for(int i=1;i<n;i++){
  23. if(dp_dif > 0){
  24. a[i] += dp_dif;
  25. dp[i] += dp_dif;
  26. }
  27. a[i] += d[i];
  28. dp_i = dp[i];
  29. dp[i] = max(dp[i],((dp[i]-a[i])+1)/2);
  30. dp_dif += dp[i] - dp_i;
  31. cout << a[i] << " " << dp[i] << endl;
  32. }
  33. cout << endl;
  34. }
  35.  
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0.01s 5280KB
stdin
2
2
2 4
10 12
0 2
5
1 4
7 8
9 10
13 15
19 20
1 2 3 4 5
stdout
2 4
12 12

2 4
9 8
12 10
17 15
24 20