Untitled
unknown
java
2 years ago
1.4 kB
5
Indexable
import java.util.*; public class Palindrome { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int q = sc.nextInt(); sc.nextLine(); String s = sc.nextLine(); int[][] queries = new int[q][3]; for (int i = 0; i < q; i++) { queries[i][0] = sc.nextInt(); queries[i][1] = sc.nextInt(); queries[i][2] = sc.nextInt(); } System.out.println(canMakePaliQueries(s, n, queries)); } public static int canMakePaliQueries(String s, int n, int[][] queries) { List<Boolean> res = new ArrayList<>(); for (int[] query : queries) { res.add(canMakePal(s, query[0] - 1, query[1] - 1, query[2])); } int ans = 0; for (int i = 0 ; i < res.size(); i++) { if (res.get(i)) { ans = (ans + (int) Math.pow(2, i + 1)) % 1000000007; } } return ans; } private static boolean canMakePal(String s, int start, int end, int max) { if (max >= 13) return true; Set<Character> set = new HashSet<>(); for (int i = start; i <= end; i++) { if (!set.add(s.charAt(i))) set.remove(s.charAt(i)); } return max >= set.size()/2; } }
Editor is loading...