Cặp số đảo ngược

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1000 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bạn được cho một dãy số nguyên dương \(A\)\(N\) phần tử \(A_1, A_2, \dots, A_N\).

Hai cặp số nguyên dương \((x, y)\) được coi là cặp số đảo ngược nếu đảo ngược thứ tự các chữ số của \(x\) thì được số \(y\), và nếu đảo ngược thứ tự các chữ số của \(y\) thì được số \(x\):

  • Cặp số \((123, 321)\) là cặp số đảo ngược.
  • Cặp số \((897, 12)\) không là cặp số đảo ngược.

Yêu cầu: Bạn hãy đếm số cặp phần tử trong dãy \(A\) là cặp số đảo ngược.

Input

  • Dòng đầu chứa số nguyên dương \(N\) (\(N \le 10^5\)).
  • Dòng thứ hai chứa \(N\) số nguyên dương \(A_1, A_2, \dots, A_N\) (\(A_i \le 10^9\)).

Các số trên cùng một dòng cách nhau bởi chính xác một dấu cách.

Output

  • Ghi ra một số nguyên là số lượng cặp số nguyên dương \((i, j)\) sao cho \(1 \le i < j \le N\)\((A_i, A_j)\) là cặp số đảo ngược.

Example

Test 1

Input
6
123 123 456 321 654 789
Output
3
Note

Các cặp số \((i,j)\) thỏa mãn là \((1, 4)\), \((2, 4)\)\((3, 5)\).

Ràng buộc

  • \(50\%\) số test tương ứng với \(50\%\) số điểm thỏa mãn: \(N \le 1000\).
  • \(25\%\) số test khác tương ứng với \(25\%\) số điểm thỏa mãn: \(N \le 10^5\)\(A_i \le 10^5\).
  • \(25\%\) số test còn lại tương ứng với \(25\%\) số điểm thỏa mãn: \(N \le 10^5\)\(A_i \le 10^9\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.