KTTRU - Kiểm tra trùng

Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: nxphuc

Yêu cầu rất đơn giản, cho một xâu kí tự S. Nhiệm vụ của bạn là hãy viết lặp đi lặp lại xâu S vô hạn lần và cho biết 2 kí tự tứ a và thứ b của xâu mới đó có giống nhau hay không? Các phần tử được đánh số từ 1.
Dữ liệu nhập:
 - Dòng đầu tiên chứa xâu S (1 ≤ |S| ≤ 105).
 - Dòng thứ hai chứa một số nguyên Q - số lượng truy vấn (1 ≤ Q ≤ 105).
 - N dòng tiếp theo, mỗi dòng chứa 2 số nguyên a, b - chỉ số 2 phần tử cần kiểm tra (1 ≤ a, b ≤ 1018).
Dữ liệu xuất: Gồm Q dòng tương ứng với Q truy vấn, dòng thứ i trong Q dòng chứa "Yes" hoặc "No" (không có ngoặc kép) tương ứng với hai kí tự ở vị trí a và b giống nhau hay không.

Ví dụ

  • input
    vgxgp
    3
    2 4
    2 5
    7 14
    output
    Yes
    No
    Yes
  • Solution :
  • #include<iostream>
    #include<string.h>
    #define max 100005
    using namespace std;
    int main (){
    char s[max];
    cin >> s;
    int lenS = strlen(s);
    int test;
    cin >> test;
    while(test--){
    long long a,b;
    cin >> a >> b;
    a = a-1;
    b = b-1;
    if(s[a%lenS]==s[b%lenS]) cout << "Yes" << endl;
    else cout << "No" << endl;
    }
    }

Nhận xét

Bài đăng phổ biến từ blog này

OCSE - Ốc sên ăn rau

MERGENUM - Ghép số

BACO - Bàn cờ