Hỏi về nhập nhiều dòng trong c++

Cho em hỏi làm sao để nhập được như thế trong c++ ạ?

Input:
Gồm nhiều dòng. Mỗi dòng có hai số nguyên a,b – số index của các bài tập. Có nghĩa bài a sẽ liên quan đến bài b.

Giới hạn: 1≤a,b≤10^18. Và có không quá 10^5 dòng.

Output:
Số lượng bài tập phải ưu tiên giải trước.

Examples

Input:

1 2 
1 3 
1 4

Output:

3

Input:

1 2 
1 3 
1 4 
4 5 
5 6

Output:

3
for (long long a, b; std::cin >> a >> b;)
{
    // xử lý a, b mỗi dòng
}
4 Likes

Mà anh ơi làm s cho nó dừg lại ạk@@
E làm nó cứ lặp cho nhập mãi luôn

:V em tạo 1 cái file input ví dụ tên là input.txt rồi input vô cái file đó vậy

#include <fstream>
...
std::ifstream ifs("input.txt");
for (long long a, b; ifs >> a >> b;)
{
...
}

nếu em ko thích xài file, thì nếu chỉ xài std::cin để đọc cặp a b thôi, xong ko còn sử dụng std::cin nữa thì em cứ bấm đại chữ cái nào ví dụ chữ cái q cho nó đọc fail là nó ngừng :V


cách thứ 3 :V em cứ nhập input vô file input.txt, rồi em mở console lên, gõ

type input.txt > main.exe

(trên linux thì xài cat thay cho type)
với main.exe là tên file thực thi em tạo ra. Trong code vẫn xài std::cin

3 Likes


Đề cụ thể đây ạk
Anh cho e xin hướng đi với ạk. Em bị fail khúc nhập dữ liệu thôi @@

sao biết fail lúc nhập dữ liệu :V

anh có biết giải bài này đâu :V

1 Like

tại e nhập hôg được nên hôg làm được
nó k cho biết trước test đó có bao nhiêu query cần nhập @@

Input bị fail là do áp dụng nhập file vào. Cứ làm theo post này

Nhập trên máy từ bàn phím thì không dừng được, hãy pipe file vào stdin. Còn trên online judge thì khi code đọc hết thì vòng lặp tự động dừng (online judge cũng pipe file vào stdin thôi).

4 Likes

dạ e hỉu r e cảm ơn ạk

Theo ví dụ 1 thì b phải đi trước a mới đúng :smiley:

Trước nhất nghĩa là không có số nào trước nó nữa.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?