Cùng học linux


Submit solution

Points: 2
Time limit: 0.5s
Memory limit: 250M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Tham khảo các anh chị khóa trên, Trong khung chương trình đào tạo của Khoa CNTT UTC, Sinh viên sẽ được đào tạo môn Hệ Điều Hành. Vào những ngày cuối năm 2018, Hiếu quyết định tìm hiểu trước môn học này.

Vốn luôn ước mơ trở thành một Hacker, Sau khi tham khảo các hệ điều hành, Hiếu đã chọn được hệ điều hành Linux khá phù hợp với ước mơ của mình, và hôm nay Hiếu quyết định chinh phục nó. Bài học đầu tiên tìm hiểu được là về đường dẫn file.

Cho một số thông tin câu lệnh và kí hiệu như sau:

  • Đường dẫn tuyệt đối là đường dẫn luôn có dạng ngắn gọn nhất bắt đầu từ thư mục root để biểu thị một đường dẫn file : /dir1/dir2/dir3/...
  • "/" là kí hiệu của thư mục gốc (root), các đường dẫn file luôn luôn bắt đầu với nó, ngay cả khi nó không có trong đường dẫn đã cho.
  • "/" đồng thời cũng là kí hiệu phân chia giữa các thư mục, file, điều hướng điểm đến cho thư mục con từ thư mục cha. Ví dụ, "/utc/coder" mô tả thư mục coder là một thư mục con nằm trong thư mục utc, và thư mục utc nằm trong thư mục root. Điều đó cũng cho thấy "//" có nghĩa là "không đi vào thư mục con nào cả"
  • "." sử dụng để đi đến chính thư mục hiện tại đang truy xuất ở thời điểm nó nằm trong đường dẫn.
  • ".." sử dụng để quay về thư mục cha, nếu thư mục hiện tại là root thì ko có gì xảy ra.

Thấy khá thú vị, Hiếu nảy ra ý tưởng viết một chương trình tối giản đường dẫn file từ một đường dẫn file cho trước thành đường dẫn tuyệt đối.

Ví dụ, Cho đường dẫn sau: "/home/a/./x/../b//c/" thì đường dẫn sau khi tối giản được sẽ là "/home/a/b/c". Đường dẫn trên đã được tối giản dựa theo việc thực hiện các câu lệnh trên:

  • Đường dẫn /./ có nghĩa "từ thư mục hiện tại chuyển đến chính nó " và đường dẫn trở thành /
  • Đường dẫn /x/../ có nghĩa "chuyển đến thư mục x sau đó quay lại thư mục cha của x", vì vậy sau đó dường dẫn trở thành /
  • Đường dẫn // có nghĩa "không đi vào thư mục con nào cả" và nó vẫn ở nguyên chỗ cũ. Vì vậy đường dẫn trở thành /.

Thật không may, Hiếu cần phải ôn tập để chuẩn bị tham dự contest lập trình cuối năm thường niên của Khoa CNTT UTC để kiếm lì xì đầu năm, nên các bạn hãy giúp đỡ nhé.

Input

  • Dòng duy nhất chứa đường dẫn file cần phải tối giản P có độ dài 1 <= |P| <= 5*10^4

Output

  • Dòng duy nhất chứa đường dẫn tuyệt đối sau khi đã tối giản P.

Example 1

Input:

/home/

Output:

/home

Example 2

Input:

/utc//coder/

Output:

/utc/coder
utc

Comments


  • 0
    PhamThanhTung_CNTT1_K64  commented on March 24, 2024, 11:31 a.m.

    cho e hỏi nếu kết quả sau cùng là trống (vd: input: /../) thì output như nào thế e chưa hình dung đc