Trong giao thức xác thực kiểu challenge–response, ở mỗi phiên đăng nhập, server gửi cho client một giá trị nonce (số dùng một lần) để chống tấn công phát lại (replay attack). Giao thức chỉ an toàn nếu server không bao giờ chấp nhận một nonce đã được dùng ở phiên trước đó.
Cho danh sách n nonce theo đúng thứ tự các phiên đăng nhập mà server đã nhận được, hãy xác định chỉ số phiên đầu tiên (đánh số từ 1) mà nonce của phiên đó trùng với một nonce đã xuất hiện ở phiên trước — đây chính là dấu hiệu của một cuộc tấn công phát lại. Nếu không có nonce nào bị lặp lại, in ra SAFE.
Ví dụ: Với n=4 và các nonce a1, b2, a1, c3: nonce a1 ở phiên 3 trùng với nonce đã dùng ở phiên 1 → in ra 3.
Dòng đầu là số nguyên n (0≤n≤105). n dòng tiếp theo, mỗi dòng là một nonce (chuỗi không chứa khoảng trắng, độ dài tối đa 64 ký tự).
In ra chỉ số (1-based) của phiên đầu tiên phát hiện tấn công phát lại, hoặc SAFE nếu tất cả nonce đều phân biệt.
Ví dụ:
Đầu vào:
1
abcd
Đầu ra:
SAFE
Đầu vào:
5
a1b2
c3d4
e5f6
0011
2233
Đầu ra:
SAFE
Đang tải editor...