#include <bits/stdc++.h>
using namespace std;
using ll = long long;
std::mt19937 rng((int) std::chrono::steady_clock::now().time_since_epoch().count());
signed main() {
std::ios::sync_with_stdio(0);
std::cin.tie(0);
string s; cin >> s;
int n = s.size();
vector<vector<int>> f(26);
for(int i = 0; i < n; i++)
f[s[i] - 'a'].push_back(i);
auto cnt = [&] (int i, int j, int c) {
return upper_bound(f[c].begin(), f[c].end(), j)
- upper_bound(f[c].begin(), f[c].end(), i - 1);
};
int q; cin >> q;
while(q--) {
int a, b, c, d;
cin >> a >> b >> c >> d;
a--, b--, c--, d--;
bool okay = true;
for(int i = 0; i < 26 && okay; i++)
if(cnt(a, b, i) != cnt(c, d, i))
okay = false;
cout << (okay ? "DA" : "NE") << '\n';
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
2 ms |
340 KB |
Output is correct |
3 |
Correct |
1 ms |
340 KB |
Output is correct |
4 |
Correct |
1 ms |
340 KB |
Output is correct |
5 |
Correct |
2 ms |
340 KB |
Output is correct |
6 |
Correct |
81 ms |
1872 KB |
Output is correct |
7 |
Correct |
88 ms |
1800 KB |
Output is correct |
8 |
Correct |
85 ms |
1888 KB |
Output is correct |
9 |
Correct |
79 ms |
1908 KB |
Output is correct |
10 |
Correct |
82 ms |
1780 KB |
Output is correct |