COCI '17 Contest 3 #2 Programiranje

View as PDF

Submit solution

Points: 7 (partial)
Time limit: 3.0s
Memory limit: 64M

Problem type

Little Leticija is preparing for a programming exam. Even though she has solved a lot of tasks, there's one still left unsolved, so she is asking you for help.

You are given the word S and Q queries. In each query, you are given positive integers A, B, C and D.

Let's say that word X consists of letters between positions A and B in word S, and word Y from letters between positions C and D in word S. For each query, you must answer if it is possible to somehow rearrange the letters in word Y and obtain word X.

Input Specification

The first line of input contains the word S (1 \le |S| \le 50\,000). |S| denotes the number of characters in word S, which consists of lowercase letters of the English alphabet.

The second line of input contains the positive integer Q (1 \le Q \le 50\,000).

Each of the following Q lines contains four integers A, B, C, D (1 \le A \le B \le |S| and 1 \le C \le D \le |S|) from the task.

Output Specification

For each query, output DA (Croatian for yes) if it is possible, and NE (Croatian for no) if it is not.

Scoring

In test cases worth 50\% of total points, it will hold: 1 \le |S| \le 1\,000 and 1 \le Q \le 1\,000.

Sample Input 1

kileanimal
2
2 2 7 7
1 4 6 7

Sample Output 1

DA
NE

Sample Input 2

abababba
2
3 5 1 3
1 2 7 8

Sample Output 2

DA
DA

Sample Input 3

vodevovode
2
5 8 3 6
2 5 3 6

Sample Output 3

NE
DA

Explanation for Sample Output 3

In the first query, X=vovo, and Y=devo. In the second query, X=odev, and Y=devo.


Comments

There are no comments at the moment.