trang chủ / đề bài / trainsess

Buổi tập huấn

Đề bài

Mô tả

Huấn luyện viên của đội tuyển lập trình có n bài tập mà chưa học sinh nào từng làm. Bài tập thứ i thuộc chủ đề ai và có độ khó bi (cả hai đều là số nguyên từ 1 đến n). Không có hai bài tập nào trùng nhau, tức là không tồn tại hai bài có cùng chủ đề và đồng thời cùng độ khó.

Huấn luyện viên muốn chọn đúng 3 bài trong n bài để tạo thành một đề luyện tập. Bộ ba được chọn phải thoả mãn ít nhất một trong hai điều kiện sau (có thể thoả mãn cả hai):

  • chủ đề của cả ba bài đôi một khác nhau;
  • độ khó của cả ba bài đôi một khác nhau.

Hãy đếm số cách chọn ba bài tập thoả mãn yêu cầu. Hai cách chọn được coi là khác nhau nếu tập ba bài tập của chúng khác nhau; thứ tự các bài trong một cách chọn không quan trọng.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng đầu chứa số nguyên n là số bài tập.
    • n dòng tiếp theo, dòng thứ i chứa hai số nguyên ai và bi là chủ đề và độ khó của bài tập thứ i.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng số cách chọn ba bài tập thoả mãn yêu cầu.

Ràng buộc

  • 1≤t≤50000
  • 3≤n≤2·105
  • 1≤ai,bi≤n
  • Không có hai bài tập nào có cùng chủ đề và đồng thời cùng độ khó.
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 2·105.

Ví dụ

Input Output Giải thích
2
4
2 4
3 4
2 1
1 3
5
1 5
2 4
3 3
4 2
5 1
3
10
Bộ dữ liệu 1: ba cách chọn hợp lệ là các bài {1,2,4}, {1,3,4} và {2,3,4}. Bộ ba {1,2,3} bị loại vì chủ đề là 2,3,2 (không đôi một khác nhau) và độ khó là 4,4,1 (cũng không đôi một khác nhau).
Bộ dữ liệu 2: mọi chủ đề đều khác nhau nên cả (53)=10 bộ ba đều hợp lệ.
2
3
1 1
1 2
2 1
4
1 1
1 2
1 3
2 1
0
2
Bộ dữ liệu 1: bộ ba duy nhất có chủ đề 1,1,2 và độ khó 1,2,1, cả hai đều lặp nên không có cách chọn nào.
Bộ dữ liệu 2: hai cách hợp lệ là {1,2,3} (độ khó 1,2,3 khác nhau) và {2,3,4} (độ khó 2,3,1 khác nhau).

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