백준공부/java
[백준] 20949번 효정과 새 모니터 (silver 5
gomduri43
2024. 3. 8. 09:32
import java.io.*;
import java.util.*;
class Point{
int num;
int v;
public Point(int num, int v){
this.num=num;
this.v=v;
}
}
public class Main{
public static void main(String[] args ) throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
ArrayList<Point> arr=new ArrayList<>();
int n=Integer.valueOf(br.readLine());
for(int i=1; i<=n; i++){
st=new StringTokenizer(br.readLine());
int w=Integer.valueOf(st.nextToken());
int h=Integer.valueOf(st.nextToken());
arr.add(new Point(i, (int)(Math.pow(w,2)+Math.pow(h,2))));
}
Collections.sort(arr, new Comparator<Point>(){
public int compare(Point o1, Point o2){
if(o1.v==o2.v){
return o1.num-o2.num;
}
else{
return -(o1.v-o2.v);
}
}
});
for(int i=0; i<arr.size(); i++){
bw.write(arr.get(i).num+"\n");
}
bw.flush();
}
}
//간단한 정렬 문제 / 이때 정렬을 할때 굳이 식대로 계산을 할필요 x 모두다 동일한 계산방식으로 결정나므로,
//w,h로 제곱합만해도 충분하다.