trang chủ / đề bài / voi18_seq

Dãy xấp xỉ tăng

Đề bài

Mô tả

Vinh rất thích các bài toán liên quan đến dãy số. Vừa qua thầy dạy giải tích đã giao cho Vinh giải quyết bài toán sau đây:

Cho dãy số nguyên A=<a1,a2,…,aN>, cần xây dựng dãy số nguyên B=<b1,b2,…,bN> thỏa mãn các điều kiện sau:

  • Dãy B là đơn điệu tăng, nghĩa là b1<b2<…<bN;
  • Độ chênh lệch d(A,B) giữa hai dãy A và B được tính theo công thức: d(A,B)=|a1−b1|+|a2−b2|+...+|aN−bN| là nhỏ nhất.

Dãy B thỏa mãn các điều kiện nêu trên được gọi là dãy đơn điệu tăng xấp xỉ tốt nhất dãy số A.

Yêu cầu: Hãy giúp Vinh tìm dãy số B thỏa mãn các yêu cầu đặt ra.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên dương N;
  • Dòng thứ hai chứa N số nguyên a1,a2,…,aN, hai số liên tiếp được ghi cách nhau bởi dấu cách, là các số hạng của dãy số A đã cho.

Dữ liệu ra

  • Dòng đầu tiên chứa một số nguyên là độ chênh lệch giữa dãy số tìm được với dãy đã cho;
  • Dòng thứ hai chứa N số nguyên b1,b2,…,bN, hai số liên tiếp được ghi cách nhau bởi dấu cách, là các số hạng của dãy tìm được. Nếu có nhiều dãy cùng thỏa mãn các điều kiện đặt ra, hãy đưa ra một dãy tùy ý trong số chúng.

Ràng buộc

  • 1≤N≤300000;
  • 0≤ak≤109, k=1,2,…,N.

Subtasks

  • Subtask 1 (20% số test, 20% số điểm): N=3; 0≤ak≤109;
  • Subtask 2 (20% số test, 20% số điểm): N≤300; 0≤ak≤300;
  • Subtask 3 (20% số test, 20% số điểm): N≤300; 0≤ak≤109;
  • Subtask 4 (20% số test, 20% số điểm): N≤3000; 0≤ak≤109;
  • Subtask 5 (20% số test, 20% số điểm): N≤300000; 0≤ak≤109.

Đối với mỗi test, 50% số điểm của test dành cho việc đưa ra giá trị độ chênh lệch nhỏ nhất và 50% số điểm còn lại dành cho việc đưa ra dãy đơn điệu tăng xấp xỉ tốt nhất dãy đã cho.

Ví dụ

Input Output Giải thích
7
1 5 1 7 3 1 3
17
-1 0 1 2 3 4 5
d=2+5+0+5+0+3+2=17. Các số hạng của B có thể âm.
3
10 3 3
9
2 3 4
Ví dụ thêm (không có trong đề gốc): dãy B phải tăng ngặt nên không thể giữ nguyên hai số 3; d=8+0+1=9.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0