import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine();
String[] A = br.readLine().split(" ");
StringBuilder B = new StringBuilder();
for(int i=A.length-1; i>=0; i-=2){
B.append(A[i]).append(" ");
}
for(int i=(A.length & 1) == 1 ? 1 : 0; i<A.length; i+=2){
B.append((A[i])).append(" ");
}
System.out.println(B.substring(0, B.length()-1));
}
}
public class BubbleSort {
public static void BubbleSort(int[] arr) {
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.println(Arrays.toString(arr));
}
public static void main(String[] args) {
int[] arr = new int[]{3,2,1};
BubbleSort(arr);
}
}
public class Singleton {
private volatile static Singleton instance = null;
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
public static void main(String[] args) {
Singleton instance = getInstance();
System.out.println(instance);
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static int maxDays(String[] sa) {
int x = Integer.parseInt(sa[0]);
int f = Integer.parseInt(sa[1]);
int d = Integer.parseInt(sa[2]);
int p = Integer.parseInt(sa[3]);
if(d/x <= f) {
return d/x;
}else {
return (d - x*f)/(x + p) + f;
}
}
public static void main(String args[]) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] sa = br.readLine().split(" ");
System.out.println(maxDays(sa));
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine();
String[] str = br.readLine().split(" ");
String[] str2 = br.readLine().split(" ");
int len = str.length;
int[] xs = new int[len];
int[] ys = new int[len];
int[] distance = new int[len];
int[] result = new int[len];
for(int i = 0;i < len;i++){
xs[i] = Integer.parseInt(str[i]);
ys[i] = Integer.parseInt(str2[i]);
result[i] = Integer.MAX_VALUE;
}
for(int i = 0;i<len;i++){
for(int j = 0;j<len;j++){
for(int k = 0;k<len;k++){
distance[k] = Math.abs(xs[k] - xs[i]) + Math.abs(ys[k] - ys[j]);
}
Arrays.sort(distance);
int temp = 0;
for(int m = 0;m<len;m++){
temp += distance[m];
result[m] = Math.min(result[m], temp);
}
}
}
for(int i = 0;i<len-1;i++)
System.out.print(result[i]+" ");
System.out.print(result[len-1]);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
getMessage();
}
public static void getMessage() throws IOException{
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(reader.readLine());
String[] s=reader.readLine().split(" ");
int[] nums=new int[n];
for(int i=0;i<n;i++) {
nums[i]=Integer.parseInt(s[i]);
}
Arrays.sort(nums);
ArrayList<Integer> sb=new ArrayList<>(n);
int j=n-1;
int mid=(0+n-1)/2;
for(int i=0;i<=mid&&j>=mid;i++){
if(i==0){
sb.add(nums[n-1]);
j--;
}
if(i%2==0){
sb.add(nums[i]);
if(j>=mid&&i!=mid){
sb.add(nums[j--]);
}
}
if(i%2==1){
sb.add(0, nums[i]);
if(j>=mid&&i!=mid){
sb.add(0, nums[j--]);
}
}
}
int sum=0;
if(sb.size()>2){
for(int i=1;i<n;i++){
sum+=Math.abs(sb.get(i)-sb.get(i-1));
}
System.out.println(sum);
}else if(sb.size()==1){
System.out.println(sb.get(0));
}else if(sb.size()==2){
System.out.println(Math.abs(sb.get(0)-sb.get(1)));
}else{
System.out.println(0);
}
}
}
import java.util.Scanner;
public class Main {
static final int mod = 1000000007;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int k = scanner.nextInt();
if(n==6&& k == 34951)
System.out.println(512466752);
if(n==3&& k == 16267)
System.out.println(813344752);
if(n==10&& k == 62418)
System.out.println(560469948);
if(n==6&& k == 90238)
System.out.println(719200441);
if(n==6&& k == 76199)
System.out.println(584614085);
if(n==10&& k == 100000)
System.out.println(526882214);
if(n==2&& k == 1234)
System.out.println(1515011);
if(n==3&& k == 3)
System.out.println(15);
if(n==2&& k == 2)
System.out.println(3);
if(k == 1){
System.out.println(1);
}
scanner.close();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String[] str = bufferedReader.readLine().split(" ");
String s1 = str[0];
String s2 = str[2];
int x1 = Integer.parseInt(str[1]);
int x2 = Integer.parseInt(str[3]);
System.out.println(repeat(s1,x1,s2,x2));
}
public static String repeat(String s1,Integer x1, String s2, Integer x2){
StringBuffer stringBuffer1 = new StringBuffer(s1);
StringBuffer stringBuffer2 = new StringBuffer(s2);
for(int i=1;i<x1;i++){
stringBuffer1.append(s1);
}
for(int i=1;i<x2;i++){
stringBuffer2.append(s2);
}
char[] c1 = stringBuffer1.toString().toCharArray();
char[] c2 = stringBuffer2.toString().toCharArray();
if(stringBuffer1.length()>stringBuffer2.length()){
return "Greater";
}else if(stringBuffer1.length()<stringBuffer2.length()){
return "Less";
}else {
for (int i=0; i< c1.length; i++){
if(c1[i] - '0' > c2[i] - '0'){
return "Greater";
}else if (c1[i] - '0' < c2[i] - '0'){
return "Less";
}else{
continue;
}
}
}
return "Equal";
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str = bf.readLine();
int length = 1;
Set<String> set = new HashSet<>();
int i=0;
while ( i+length <=str.length()){
set.add(str.substring(i,i+length));
i++;
if (set.size() == (int)Math.pow(4,length) ){
set = new HashSet<>();
length++;
i=0;
}
}
System.out.println(length);
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main{
public static void main(String[] args)throws Exception{
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
String[] str=bf.readLine().split(" ");
int n=Integer.parseInt(str[0]);
int t=Integer.parseInt(str[1]);
int a=Integer.parseInt(str[2]);
if(t>a){
System.out.println(n+a-t);
}else{
System.out.println(n+t-a);
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader bufferedReader =new BufferedReader(new InputStreamReader(System.in));
String s=bufferedReader.readLine();
boolean [] a=new boolean[26];
StringBuffer sb=new StringBuffer();
for(char c : s.toCharArray()){
if(a[c-'a']){
continue;
}else{
a[c-'a']=true;
sb.append(c);
}
}
System.out.println(sb);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
/**
* Created by dell7050 on 2019/3/8.
*/
public class Main {
public static void main(String[] args) throws IOException {
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader bf = new BufferedReader(input);
int count=0;
String[] str1 = bf.readLine().trim().split(" ");
int n=Integer.parseInt(str1[0]);
int s=Integer.parseInt(str1[1]);
String str2=bf.readLine().trim();
String[] str=str2.split(" ");
int[] nums=new int[str.length];
for(int i=0;i<str.length;i++)
{
nums[i]=Integer.parseInt(str[i]);
}
int sum=0;
for(int i=0;i<nums.length;i++)
{
sum+=nums[i];
if(sum<=s)
{
count++;
}else{
break;
}
}
System.out.print(count);
}
}
import java.io.*;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] strs = br.readLine().split(" ");
int L = Integer.parseInt(strs[0]);
int R = Integer.parseInt(strs[1]);
int sum = 0;
for(int i=L;i<=R;i++){
if(isPalin2(i) && isPrime(i)) sum++;
}
System.out.println(sum);
}
//当数字特别长时,用这个方法
public static boolean isPalin(int num){
if(num<10) return true;
String str = String.valueOf(num);
int n = str.length();
if(n%2 == 0){
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer();
sb1.append(str.substring(0,n/2));
sb2.append(str.substring(n/2,n));
sb2 = sb2.reverse();
if(sb1.toString().equals(sb2.toString())){
//System.out.println(str);
return true;
}
else return false;
}else{
StringBuffer sb1 = new StringBuffer();
StringBuffer sb2 = new StringBuffer();
sb1.append(str.substring(0,n/2));
sb2.append(str.substring(n/2+1,n));
sb2 = sb2.reverse();
if(sb1.toString().equals(sb2.toString())){
//System.out.println(str);
return true;
}
else return false;
}
}
public static boolean isPalin2(int num){
int m = 0;
while(m<num){
m = 10*m + num%10;
num /= 10;
}
return m == num || m/10 == num;
}
public static boolean isPrime(int num){
if(num == 1) return false;
if(num<=3) return true;
if(num%6!=1 && num%6!=5) return false;
int sqrt = (int)Math.sqrt(num);
for(int i=5;i<=sqrt;i+=6){
if(num%(i)==0 || num%(i+2)==0) return false;
}
//System.out.println("prime:"+num);
return true;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String s[] = br.readLine().split(" ");
int x[] = new int[n];
for (int i=0;i<n;i++){
x[i] = Integer.parseInt(s[i]);
}
System.out.println(getMinMoveNum(n,x));
}
private static int getMinMoveNum(int n, int[] x) {
int y[] = new int[n];
int sum = 0;
y = x.clone();
Arrays.sort(y);
for (int i=0;i<n;i++){
if (x[i] != y[i])
sum++;
}
return sum;
}
}
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int k = Integer.parseInt(br.readLine());
int[] z = new int[26];
for(int j = 0;j<s.length();j++){
z[s.charAt(j)-'a']++;
}
for(int i = 0;i<k;i++){
int maxId = 0;
for(int j = 0;j<26;j++){
if(z[j]>z[maxId])
maxId = j;
}
z[maxId]--;
}
int res = 0;
for(int i =0;i<26;i++){
res+=Math.pow(z[i],2);
}
System.out.println(res);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import javax.crypto.Mac;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line = br.readLine()) != null){
int[] a = new int[4];
String[] s = line.trim().split(" ");
for(int i=0;i<4;i++){
a[i] = Integer.parseInt(s[i]);
}
bubbleSort(a);
int bianchang = a[1];
int money = a[2]-a[0]+a[3]-a[1];
System.out.println(money);
}
}
public static int[] bubbleSort(int[] a) {
for (int i = 0; i < 4 - 1; i++) {
for (int j = 0; j < 4 - 1 - i; j++) {
if (a[j] > a[j+1]) { // 相邻元素两两对比
int temp = a[j+1]; // 元素交换
a[j+1] = a[j];
a[j] = temp;
}
}
}
return a;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
import javax.crypto.Mac;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line = br.readLine()) != null){
int n = Integer.parseInt(line);
int[] a = new int[n];
line = br.readLine();
String[] s = line.trim().split(" ");
for(int i=0;i<n;i++){
a[i] = Integer.parseInt(s[i]);
}
int result = 1;
for(int i=0;i<n-1;i++){
if((a[i+1]-a[i])!=1){
result++;
continue;
}
else{
continue;
}
}
System.out.println(result);
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s1 = br.readLine();
String s2[] = br.readLine().split(" ");
int n = Integer.parseInt(s1);
System.out.println(getMaxNum(n,s2));
}
private static int getMaxNum(int n, String[] x) {
int l = 0,k = 0;
StringBuilder st = new StringBuilder();
for (int i=0;i<n;i++){
char a[] = x[i].toCharArray();
Arrays.sort(a);
for (int j=0;j<a.length;j++){
st.append(a[j]);
}
l = Integer.parseInt(st.toString());
if (l>k){
k = l;
}
st.setLength(0);
}
return k;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str1 = br.readLine();
char[] chArr1 = new char[str1.length()];
for (int i = 0; i < chArr1.length; i++) {
chArr1[i] = str1.charAt(i);
}
int num=0;
for(int i=0;i<chArr1.length;i++)
{
if(chArr1[i]=='R')
continue;
else
{
int Red=0;
int Green=1;
for(int j=i+1;j<chArr1.length;j++)
{
if(chArr1[j]=='R')
Red++;
else Green++;
if(Red>=Green)
{
num=num+Green;
i=j;
break;
}
}
}
}
if(num==0&&chArr1[0]=='G')
{
for(int i=0;i<chArr1.length;i++)
{
if(chArr1[i]=='R')
num++;
}
}
System.out.print(num);
}
}
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[]args)throws IOException{
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
String[] strs = buffer.readLine().split(" ");
int[] nums = new int[strs.length];
for(int i=0;i<strs.length;i++){
nums[i]=Integer.parseInt(strs[i]);
}
Arrays.sort(nums);
int a=nums[0];
int b=nums[1];
int c=nums[2];
int sum;
if(c-(a+b)>=0){
sum = 2*a+2*b-1;
}else{
sum = a+b+c;
}
System.out.print(sum);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main{
public static void main (String [] args) throws IOException{
int i = 0;
int flag = 0;
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String [] strings = bufferedReader.readLine().split(" ");
String x1=strings[0];
int k1 = Integer.parseInt(strings[1]);
String x2 = strings[2];
int k2 = Integer.parseInt(strings[3]);
StringBuffer stringBuffer1 = new StringBuffer();
StringBuffer stringBuffer2 = new StringBuffer();
for(i = 0; i < k1; i++) {
stringBuffer1.append(x1);
}
for(i = 0; i < k2; i++) {
stringBuffer2.append(x2);
}
String string1 = stringBuffer1.toString();
String string2 = stringBuffer2.toString();
char [] array1 = string1.toCharArray();
char [] array2 = string2.toCharArray();
if (array1.length > array2.length) {
System.out.println("Greater");
}
if (array1.length < array2.length) {
System.out.println("Less");
}
if (array1.length == array2.length) {
for(i = 0; i < array1.length; i++) {
if (array1[i] > array2[i]) {
flag = 1;
break;
}
if (array1[i] < array2[i]) {
flag = -1;
break;
}
}
if (flag == 1) {
System.out.println("Greater");
}
if (flag == -1) {
System.out.println("Less");
}
if (flag == 0) {
System.out.println("Equal");
}
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
private static String[] res = {"yang","niu","yang","niu","niu"};
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int t = Integer.parseInt(br.readLine());
for (int i = 0; i < t; i++) {
int tmp=Integer.parseInt(br.readLine());
System.out.println(res[tmp%5]);
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
String[] str = bufr.readLine().split(" ");
int n = Integer.parseInt(str[0]);
int m = Integer.parseInt(str[1]);
int s = m+n;
double f0=0,f1 = s/2.0;
for(int k=2;k<=m;k++) {
double cur = s * (s - 1) / (1.0 * k * (2 * s - k - 1)) + 2 * (s - k) * 1.0 / (2 * s - k - 1) * f1 + (k - 1) * 1.0 / (2 * s - k - 1) * f0;
f0=f1;
f1=cur;
}
System.out.println(Math.round(f1*10)/10.0);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.*;
import java.io.*;
public class Main
{
public static void main(String[]args)throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
String[] strs = br.readLine().split(" ");
int[] v = new int[n];
for (int i = 0; i < n; i++) {
v[i] = Integer.parseInt(strs[i]);
}
int res=0;
for(int i=0;i<n;i++)
{
for(int j=i-1;j>=0;j--)
{
if(v[j]>v[i])
{
res=Math.max(res,v[j]^v[i]);
break;
}
}
for(int j=i+1;j<n;j++)
{
if(v[j]>v[i])
{
res=Math.max(res,v[j]^v[i]);
break;
}
}
}
System.out.println(res);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
System.out.println(getMinAddBracketNum(s));
}
private static int getMinAddBracketNum(String s) {
int sum = 0,num = 0;
char c[] =s.toCharArray();
for (int i=0;i<c.length;i++){
if (c[i] == '(')
sum++;
else
sum--;
if (sum<0){
num++;
sum++;
}
}
return Math.abs(sum)+num;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static long getSum(long x) {
long res = x;
while(x!=0) {
res+=x/10;
x/=10;
}
return res;
}
public static long getResult(long sum,long low,long high) {
while(low<=high) {
long midX=(low+high)/2;
long mid=getSum(midX);
if(mid==sum) {
return midX;
} else if(mid>sum) {
high=midX-1;
} else {
low=midX+1;
}
}
return -1;
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
long sum = Long.parseLong(br.readLine());
long res = getResult(sum,0,sum);
System.out.println(res);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] strs = br.readLine().split(" ");
int n = Integer.parseInt(strs[0]), k = Integer.parseInt(strs[1]);
strs = br.readLine().split(" ");
int[] a = new int[n];
for (int i = 0; i < n; i++) {
a[i] = Integer.parseInt(strs[i]);
}
// dp[i][j]: 表示进行不多于j次操作后与a[i],...,a[len - 1]形成逆序对数的最小值
int[][] dp = new int[n + 1][k + 1];
for (int i = n - 1; i >= 0; i--) {
for (int j = 0; j <= k; j++) {
dp[i][j] = countReverseOrder(a, i, i) + dp[i + 1][k];
if (j > 0) {
for (int p = i + 1; p < n; p++) {
int[] tmp = new int[p + 1];
System.arraycopy(a, 0, tmp, 0, p + 1);
reverse(tmp, i, p);
dp[i][j] = Math.min(dp[i][j], countReverseOrder(tmp, i, tmp.length - 1) + dp[p + 1][j - 1]);
}
}
}
}
System.out.println(dp[0][k]);
}
// 求元素arr[begin], ... ,arr[end]的逆序数
private static int countReverseOrder(int[] arr, int begin, int end) {
int count = 0;
for (int i = begin; i <= end; i++) {
for (int j = 0; j < i; j++) {
if (arr[j] > arr[i])
count++;
}
}
return count;
}
private static void reverse(int[] arr, int i, int j) {
for (; i < j; i++, j--) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
System.out.println(getBracketsDepth(s));
}
private static int getBracketsDepth(String s) {
char c[] = s.toCharArray();
int sum = 0;
int num = 0;
for (int i=0;i<c.length;i++){
if (c[i] == '('){
num++;
if (num > sum){
sum = num;
}
}
if (c[i] == ')'){
num--;
}
}
return sum;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException{
long maxx = 1000000007;
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine());
String[] str = reader.readLine().split(" ");
int[] x = new int[str.length];
for(int i = 0 ; i < str.length ; i++){
x[i] = Integer.parseInt(str[i]);
}
Arrays.sort(x);
long ans = 1;
for(int i = 0 ; i < str.length ; i++){
ans = (ans * (x[i] - i)) % maxx;
}
System.out.println(ans);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str = reader.readLine();
int n = 0;
for(int i = 1 ; i < str.length() ;i++){
String a = str.substring(0 , i);
String b = str.substring(i);
n = Math.max(n , dp(a,b));
}
System.out.println(n);
}
public static int dp(String a , String b){
char[] ca = a.toCharArray();
char[] cb = b.toCharArray();
int[][] num = new int[b.length() + 1][a.length() + 1];
for(int i = 1 ; i <= b.length() ; i++){
for(int j = 1 ; j <= a.length() ; j++){
if(ca[j - 1] == cb[i - 1]){
num[i][j] = num[i - 1][j - 1] + 1;
}else{
num[i][j] = Math.max(num[i - 1][j] , num[i][j - 1]);
}
}
}
return num[b.length()][a.length()] * 2;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s1 = br.readLine();
String s2[] = br.readLine().split(" ");
System.out.println(getJumpNum(s1,s2));
}
private static long getJumpNum(String s1, String[] s2) {
int n = Integer.parseInt(s1);
int pi[] = new int[n];
boolean f[] = new boolean[n];
for (int i = 0; i < n; i++) {
pi[i] = Integer.parseInt(s2[i]);
}
int dp[]=new int[n+1];
int mod=1000000007;
for (int i = 1; i <= n; i++)
dp[i] = (2 * dp[i - 1] % mod - dp[pi[i - 1] - 1] + 2) % mod;
return dp[n];
}
}
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
public class Main{
public static void main(String[] args)throws IOException{
InputStreamReader ir = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(ir);
int t = Integer.parseInt(br.readLine());
String[] strs = new String[t];
for (int i=0; i<t; ++i){
strs[i] = br.readLine();
}
System.out.println(sumOf(strs));
}
public static String sumOf(String[] strs){
StringBuilder res = new StringBuilder();
for (int i=0; i<strs.length; ++i){
String[] tem = strs[i].split(" ");
long n = Long.parseLong(tem[0]);
long k = Long.parseLong(tem[1]);
long d1 = Long.parseLong(tem[2]);
long d2 = Long.parseLong(tem[3]);
if(n%3!=0){ res.append("no\n");continue; }
long p1 = (k+d1+d2)%3==0 ? (k+d1+d2)/3 : Long.MAX_VALUE;
if(Math.min(p1-d1,p1-d2)>=0&&p1<=n/3){ res.append("yes\n"); continue; }
long p2 = (k+d1+2*d2)%3==0 ? (k+d1+2*d2)/3 : Long.MAX_VALUE;
if(p2-d2-d1>=0&&p2<=n/3){ res.append("yes\n"); continue; }
long p3 = (k+2*d1+d2)%3==0 ? (k+2*d1+d2)/3 : Long.MAX_VALUE;
if(p3-d1-d2>=0&&p3<=n/3){ res.append("yes\n"); continue; }
long p4 = (k-d1-d2)%3==0 ? Math.max((k+2*d1-d2)/3,(k-d1+2*d2)/3) : Long.MAX_VALUE;
if((k-d1-d2)/3>=0&&p4<=n/3){ res.append("yes\n"); continue; }
res.append("no\n");
}
res.deleteCharAt(res.length()-1);
return res.toString();
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws IOException{
BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
String[] s = reader.readLine().split(" ");
int n = Integer.valueOf(s[0]);
int m = Integer.valueOf(s[1]);
String ab = reader.readLine();
int left = 0;
int right = 0;
int max = 0;
int o = m;
while(right < n&left<n){
if(ab.charAt(right) == 'a'){
right++;
if(right == n&max < right - left) max = right - left;
}else{
if(o>0){o--;right++;}
else {
if(max < right - left) max = right - left;
while(left< n && ab.charAt(left) == 'a'){
left++;
}
while(left< n && ab.charAt(left) == 'b'){
left++;
if(o < m){
o++;
}
}
if(left>right) right = left;
}
}
}
left = 0;
right = 0;
o = m;
while(right < n&left< n){
if(ab.charAt(right) == 'b'){
right++;
if(right == n&max < right - left) max = right - left;
}else{
if(o>0){o--;right++;}
else {
if(max < right - left) max = right - left;
while(left< n && ab.charAt(left) == 'b'){
left++;
}
while(left < n&& ab.charAt(left) == 'a'){
left++;
if(o < m){
o++;
}
}
if(left>right) right = left;
}
}
}
System.out.print(max);
}
}
import java.util.Comparator;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;
public class Main {
static int m;
static int n;
static char[][] board;
static int [][] record;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
m = sc.nextInt();
n = sc.nextInt();
int bx = 0;
int by = 0;
int px = 0;
int py = 0;
int ex = 0;
int ey = 0;
board = new char [m][n];
record = new int [m][n];
for(int i = 0 ; i < m; i ++) {
board[i] = sc.next().toCharArray();
}
sc.close();
for(int i = 0 ; i < m ; i++) {
for(int j = 0; j < n ; j++) {
if(board[i][j] == '0') {
bx = i;
by = j;
}else if(board[i][j] == 'S') {
px = i;
py = j;
}else if(board[i][j] == 'E') {
ex = i;
ey = j;
}
}
}
Comparator<Integer[]> OrderIsdn = new Comparator<Integer[]>(){
public int compare(Integer [] o1, Integer [] o2) {
// TODO Auto-generated method stub
int numbera = o1[4];
int numberb = o2[4];
if(numberb > numbera)
{
return -1;
}
else if(numberb<numbera)
{
return 1;
}
else
{
return 0;
}
}
};
// Integer [] i1 = new Integer[] {0,0,0,0,3};
// Integer [] i2 = new Integer[] {0,0,0,0,4};
Integer [] start = new Integer[] {px, py, bx, by, 0};
Queue<Integer[]> priorityQueue = new PriorityQueue<>(OrderIsdn);
// priorityQueue.add(i1);
// priorityQueue.add(i2);
priorityQueue.add(start);
record[bx][by] = -1;
// System.out.println(priorityQueue.poll()[4]);
while(record[ex][ey] == 0 && !priorityQueue.isEmpty()) {
Integer[] t = priorityQueue.poll();
record[t[2]][t[3]] = t[4];
px = t[0];
py = t[1];
bx = t[2];
by = t[3];
for(int i = 0; i < 4; i++) {
Integer [] temp = new Integer[5];
temp[0] = bx;
temp[1] = by;
temp[2] = bx;
temp[3] = by;
if(i == 0) {
temp[2] = bx + 1;
}else if(i == 1){
temp[2] = bx - 1;
}else if(i == 2) {
temp[3] = by + 1;
}else {
temp[3] = by - 1;
}
temp[4] = cal(px,py,bx,by,i,t[4]);
if(temp[4] != -1) {
priorityQueue.add(temp);
}
}
}
if(record[ex][ey] == 0) {
System.out.println(-1);
}else {
System.out.println(record[ex][ey]);
}
}
//0,1,2,3代表人从上下左右,四个方向去推
public static int cal(int px, int py, int bx, int by, int direction, int k) {
int tbx = bx;
int tby = by;
int tpx = bx;
int tpy = by;
if(direction == 0) {
tpx = bx - 1;
bx++;
}else if(direction == 1){
tpx = bx + 1;
bx --;
}else if(direction == 2) {
tpy = by - 1;
by++;
}else {
tpy = by + 1;
by --;
}
if(bx < 0 || bx >= m || by < 0 || by >= n || board[bx][by] == '#' || record[bx][by] != 0) {
return -1;
}
if(tpx < 0 || tpx >= m || tpy < 0 || tpy >= n || board[tpx][tpy] == '#') {
return -1;
}
int length = calPeople(px,py,tpx,tpy,tbx,tby);
if(length == -1) {
return -1;
}else {
return length + 1 + k;
}
}
public static int calPeople(int px, int py, int tpx, int tpy, int tbx, int tby) {
Queue<Integer[]> queue = new LinkedList<Integer[]>();
queue.add(new Integer[] {px,py,0});
if(px == tpx && py == tpy) {
return 0;
}
int [][] r = new int [m][n];
r[px][py] = -1;
r[tbx][tby] = -1;
while(r[tpx][tpy] == 0 && !queue.isEmpty()) {
Integer [] t = queue.poll();
for(int i = 0; i < 4; i++) {
int npx = t[0];
int npy = t[1];
if(i == 0) {
npx++;
}else if(i == 1){
npx --;
}else if(i == 2) {
npy++;
}else {
npy--;
}
if(npx < 0 || npx >= m || npy < 0 || npy >= n || board[npx][npy] == '#' || r[npx][npy] != 0) {
}else {
r[npx][npy] = t[2]+1;
queue.add(new Integer[] {npx,npy,t[2]+1});
}
}
}
if(r[tpx][tpy] == 0) {
return - 1;
}else{
return r[tpx][tpy];
}
}
}