白駿1011 Fly me to Alpha Centauri
10937 ワード
質問する
ウヒョンは小さい頃、地球以外の他の惑星でも人類が生き残ることができると信じていた.そして、彼が地球という世界に足を踏み入れてから23年後の今日、世界で最も若いASNA宇宙飛行士となり、新しい世界に足を踏み入れる光栄な時を待っています.
彼が乗る宇宙船には、アルファCentauriという新しい人類の家を切り開くための大規模な生活維持システムが搭載されているため、その巨大なサイズと品質を理由に、最新技術の力を総合的に運用して開発された宇宙移動装置が搭載されている.しかし、このような空間移動装置の欠点は、移動距離が急激に増加すると、機械に深刻な欠陥が生じ、従来の作業時期にk光年を移動する際にk−1、kまたはk+1光年で再移動できることである.例えば、この装置を初めて起動すると、理論的には−1,0,1光年移動できるが、実際には負またはゼロ距離移動は意味がないので、1光年移動し、その後0,1,2光年移動することができる.△ここでさらに2光年移動すれば、次の時期に1、2、3光年移動できる.
金氏は、空間移動装置の起動時のエネルギー消費が大きいことをよく知っているので、x点からy点への移動が最も少ない起動回数を考えている.しかしながら、y点に到達しても、空間移動装置の安全性を確保するためには、y点に到達するまでの移動距離は1光年でなければならない.
キム・ウヒョンのために、x点からy点に正確に移動するために必要な空間移動装置の操作回数の最高値を作成してください.
コード#コード#
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void calculate(String s){
StringTokenizer st=new StringTokenizer(s);
int remain=-Integer.parseInt(st.nextToken())+Integer.parseInt(st.nextToken());
long current=1;
int next=2;
int count=1;
if(remain==1){
System.out.println(1);
return;
}
while(true){
current+=2*next-1;
count+=2;
next++;
if(current<remain)
continue;
else if(current==remain)
break;
else{
if(current-(next-1)>=remain){
count--;
break;
}
else
break;
}
}
System.out.println(count);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(br.readLine());
String[] tCase=new String[n];
for(int i=0; i<n; i++)
tCase[i]=br.readLine();
for(String s:tCase)
calculate(s);
}
}
ソリューション
Reference
この問題について(白駿1011 Fly me to Alpha Centauri), 我々は、より多くの情報をここで見つけました https://velog.io/@nuyh99/백준-1011-Fly-me-to-the-Alpha-Centauriテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol