結果

問題 No.864 四方演算
ユーザー kps
提出日時 2020-07-18 00:46:24
言語 Java
(openjdk 23)
結果
AC  
実行時間 82 ms / 1,000 ms
コード長 9,517 bytes
コンパイル時間 2,977 ms
コンパイル使用メモリ 84,576 KB
実行使用メモリ 47,028 KB
最終ジャッジ日時 2024-11-30 07:26:05
合計ジャッジ時間 6,209 ms
ジャッジサーバーID
(参考情報)
judge2 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 27
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.NoSuchElementException;
public class Main {
public static void main(String[] args) {
for(int i=0;i<1;i++) {
slover();
out.flush();
}
}
static FastScanner sc = new FastScanner();
static PrintWriter out = new PrintWriter(System.out);
//StringBuffer S = new StringBuffer(sc.next());
//String hoge2 = str.reverse().toString();
//map.containsKey(A)
//Map<Integer, Integer> map = new HashMap<Integer, Integer>(N);
/*for ( key : .keySet() ) {
data = .get( key );
// keydata使;
}*/
//int i = Integer.parseInt(s);
//Queue<String> qq=new ArrayDeque<>(); //add,poll,peek BFS
//Deque<String> dd=new ArrayDeque<>();//push,poll(pop),peek add
//stackdfs
//ArrayList<Integer> cc = new ArrayList<>(N);
//cc.contains(tmp)
//Arrays.asList(c).contains("a")
//list.set(1,"walk");//1 1 2 3 5
//PriorityQueue<Integer> r=new PriorityQueue<Integer>();//add poll
private static int INF =1000000007;
private static class D{
int sum,count;
D(int sum,int count){
this.sum=sum;;
this.count=count;
}
}
//Set<Long> a=new HashSet<Long>();
private static int mod=1000000007;
private static ArrayList<Long> divisors2(long t) {
ArrayList<Long> c=new ArrayList<>();
for(int i=1;i*i<=t;i++) {
if(t%i==0) {
if(i*i!=t) {
c.add(t/i);
}
c.add((long)i);
}
}
Collections.sort(c);
Collections.reverse(c);
return c;
}
//Integer.toBinaryString(i);
//Integer.toString(i, 2);
// //Integer.parseInt(bin, 2);
//bitset
private static int slover() {
// f(x)=x^2-3;
long N=sc.nextLong();
long K=sc.nextLong();
long ans=0;
for(long i=1;i*i<=K;i++) {
if(i==1)continue;
if(K%i==0) {
long t1=i;
long t2=K/i;
if(t1==1||t2==1)continue;
long v1=0;
long v2=0;
if(t1-N>N||t2-N>N)continue;
if(t1-1>N) {
v1=Math.abs((t1-N)-N)+1;
}else {
v1=t1-1;
}
if(t2-1>N) {
v2=Math.abs((t2-N)-N)+1;
}else {
v2=t2-1;
}
ans+=v1*v2;
if(i!=K/i)ans+=v1*v2;
}
}
p(ans);
return 0;
}
private static int modPow2(String S,int mod) {
//itO(log t)
int a=2;
int res=1;
int N=S.length()-1;
for(int i=0;i<S.length();i++) {
if(S.charAt(N-i)=='1') {
res=res*a%mod;
}
a=a*a%mod;
}
return res;
}
private static long modPow(int i,int t,long mod) {
//itO(log t)
long a=i;
long res=1;
while(t!=0) {
//p(t);
if((1&t)==1) {
res=res*a%mod;
}
a=a*a%mod;
t=t>>1;
}
return res;
}
public static int pid(int i) {
int t=0;
int j=0;
while((i>>j)!=0) {
if((1&(i>>j))==1) {
t++;
}
j++;
}
return i%t;
}
public static long gcd(long num1,long num2) {
if(num2==0) return num1;
else return gcd(num2,num1%num2);
}
public static long lcm(long num1,long num2) {
return num1*num2/gcd(num1,num2);
}
//O(N^0.5)
private static boolean isPrime(long t) {
if(t<2)return false;
for(int i=2;i*i<=t;i++) {
if(t%i==0)return false;
}
return true;
}
private static ArrayList<Long> divisors(long t) {
ArrayList<Long> c=new ArrayList<>();
for(int i=1;i*i<=t;i++) {
if(t%i==0) {
if(i*i!=t) {
c.add(t/i);
}
c.add((long)i);
}
}
return c;
}
private static void bubunwa() {
int N=sc.nextInt();
int K=sc.nextInt();
int a[]=sc.nextIntArray(N, false);
boolean dp[] =new boolean[K+1];
Arrays.fill(dp, false);
dp[0]=true;
for(int i=0;i<N;i++) {
for(int x=K-a[i];x>=0;x--) {
if(dp[x])dp[x+a[i]]=true;
}
}
p(dp[K] ? "Yes":"No");
}
private static String bitToString(int i) {
String T="";
for(int j=0;j<2;j++) {
//if(i>>j==0)break;
if((1&i>>j)==1) {
T+="1";
}else T+="0";
}
return (i+" "+T);
}
/*********************************************************************/
//targetindex
//target+1
//0-indexindex+1
private static int lower_bound(long a[],long target) {
//p(target+ " "+Arrays.toString(a));
if(a[0]>target)return -1;
//targetindex
//target
if(a[a.length-1]<=target) return a.length-1;
int S=-1;
int E=a.length;
while(S<E) {
int G=(S+E)/2;
if(G+1==a.length) {
G--;
}
//=
if(a[G]<=target&&a[G+1]>target) {
return G;
}else if(a[G]<=target){
S=G;
}else if(a[G]>target) {
E=G;
}
}
return -1;
}
static String nextPermutation(String s) {
ArrayList<Character> list=new ArrayList<>();
for(int i=0;i<s.length();i++) {
list.add(s.charAt(i));
}
int pivotPos=-1;
char pivot=0;
for(int i=list.size()-2;i>=0;i--) {
if(list.get(i)<list.get(i+1)) {
pivotPos=i;
pivot=list.get(i);
break;
}
}
if(pivotPos==-1&&pivot==0) {
return "Final";
}
int L=pivotPos+1,R=list.size()-1;
int minPos=-1;
char min =Character.MAX_VALUE;
for(int i=R;i>=L;i--) {
if(pivot<list.get(i)) {
if(list.get(i)<min) {
min=list.get(i);
minPos=i;
}
}
}
Collections.swap(list, pivotPos, minPos);
Collections.sort(list.subList(L, R+1));
StringBuilder sb=new StringBuilder();
for(int i=0;i<list.size();i++) {
sb.append(list.get(i));
}
return sb.toString();
}
private static long[][] com;
private static void nCr() {
int MAX = 3001;
com= new long[MAX][MAX];
for(int i = 0; i < MAX; i++)
com[i][0] = 1;
for(int i = 1; i < MAX; i++) {
for(int j = 1; j <= i; j++) {
com[i][j] = com[i-1][j-1] + com[i-1][j];
com[i][j] %= mod;
}
}
}
static void p(String ans) {out.println(ans);};
static void p(int ans) {out.println(ans);};
static void p() {out.println();};
static void p(long ans) {out.println(ans);};
static void p(double ans) {out.println(ans);};
static void pn(String ans) {out.print(ans);};
static void pn(int ans) {out.print(ans);};
static void pn() {out.print("");};
static void pn(long ans) {out.print(ans);};
static void pn(double ans) {out.print(ans);};
static class FastScanner {
private final InputStream in = System.in;
private final byte[] buffer = new byte[1024];
private int ptr = 0;
private int buflen = 0;
private boolean hasNextByte() {
if (ptr < buflen) {
return true;
} else {
ptr = 0;
try {
buflen = in.read(buffer);
} catch (IOException e) {
e.printStackTrace();
}
if (buflen <= 0) {
return false;
}
}
return true;
}
private int readByte() {
if (hasNextByte()) return buffer[ptr++];
else return -1;
}
private static boolean isPrintableChar(int c) {
return 33 <= c && c <= 126;
}
private void skipUnprintable() {
while (hasNextByte() && !isPrintableChar(buffer[ptr])) ptr++;
}
public boolean hasNext() {
skipUnprintable();
return hasNextByte();
}
public String next() {
if (!hasNext()) throw new NoSuchElementException();
StringBuilder sb = new StringBuilder();
int b = readByte();
while (isPrintableChar(b)) {
sb.appendCodePoint(b);
b = readByte();
}
return sb.toString();
}
public long nextLong() {
if (!hasNext()) throw new NoSuchElementException();
long n = 0;
boolean minus = false;
int b = readByte();
if (b == '-') {
minus = true;
b = readByte();
}
if (b < '0' || '9' < b) {
throw new NumberFormatException();
}
while (true) {
if ('0' <= b && b <= '9') {
n *= 10;
n += b - '0';
} else if (b == -1 || !isPrintableChar(b)) {
return minus ? -n : n;
} else {
throw new NumberFormatException();
}
b = readByte();
}
}
public int nextInt() {
return (int) nextLong();
}
public double nextDouble(){
return Double.parseDouble(next());
}
public int[] nextIntArray(int N, boolean oneBased) {
if (oneBased) {
int[] array = new int[N + 1];
for (int i = 1; i <= N; i++) {
array[i] = sc.nextInt();
}
return array;
} else {
int[] array = new int[N];
for (int i = 0; i < N; i++) {
array[i] = sc.nextInt();
}
return array;
}
}
public long[] nextLongArray(int N, boolean oneBased) {
if (oneBased) {
long[] array = new long[N + 1];
for (int i = 1; i <= N; i++) {
array[i] = sc.nextLong();
}
return array;
} else {
long[] array = new long[N];
for (int i = 0; i < N; i++) {
array[i] = sc.nextLong();
}
return array;
}
}
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0