μ½λ
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
for(int tc=1; tc<=T; tc++) {
int p = scan.nextInt();
int q = scan.nextInt();
int result = 0;
/* 첫λ²μ§Έ κ°μ λν x, y μ’ν */
int sum1 = 0;
int x1 = 0;
int y1 = 0;
for(int i=1; ; i++) {
sum1 += i;
if(sum1 >= p) {
x1 = i - (sum1-p);
y1 = (i+1) - x1;
break;
}
}
/* λλ²μ§Έ κ°μ λν x, y μ’ν */
int sum2 = 0;
int x2 = 0;
int y2 = 0;
for(int i=1; ; i++) {
sum2 += i;
if(sum2 >= q) {
x2 = i - (sum2-q);
y2 = (i+1) - x2;
break;
}
}
/* μ΅μ’
x, y μ’ν */
int x3 = x1 + x2;
int y3 = y1 + y2;
int sum3 = 1;
for(int i=1; i<(x3+y3)-1; i++) {
sum3 += i;
}
result = sum3 + (x3-1);
System.out.println("#" + tc + " " + result);
//System.out.println(x1 + " " + y1 + " " + x2 + " " + y2);
}
scan.close();
}
}
νμ΄
μ.. κ·μΉμ μ°Ύλκ² μ’ ν·κ°λ Έλ€.
λ¬Έμ μμλ μ’νκ° μλ μ’νμ κ°μ΄ μ£Όμ΄μ§λ€.
μλ₯Όλ€μ΄ κ·Έλ¦Όμμ 1μ μ’νλ (1 , 1) μ΄κ³ , 5μ μ’νλ (2 , 2) μ΄λ€.
λ°λΌμ λ μ°μ° β λ (1 + 2, 1 + 2) μ κ°μ ꡬνλ κ²μ΄λ€.
λ°λΌμ λ€μκ³Ό κ°μ΄ λ¬Έμ λ₯Ό μκ°νκ³ νμλ€.
1. μ£Όμ΄μ§ λκ°μ κ°μ λν μ’νλ₯Ό μ°Ύλλ€.
2. λ μ’νκ°μ x, y μ’νλΌλ¦¬ λνλ€
3. μ΅μ’ μ μΌλ‘ λμ¨ x, y μ’νμ κ°μ ꡬνλ€.
λ¬Έμ μμ νλ©΄μ νμ λκ°μ μλμͺ½μΌλ‘ κ°μ΄ μ§νλλ€.
κ·Έ κ°―μλ 1κ° 2κ° 3κ° ... nκ° μμ΄λ€.
λ°λΌμ κ°μ΄ μ£Όμ΄μ‘μλ, κ·Έ κ°μ΄ λͺλ²μ§Έ λκ°μ μ ν΄λΉνλμ§λΆν° μ°Ύμλ€.
λͺλ²μ§Έ λκ°μ μ μ‘΄μ¬νλμ§λ 1λΆν° λνκ°μ΄ pλ³΄λ€ μ»€μ§λμ iκ°μ΄λ€.
9(3, 2)λ₯Ό μλ‘λ€λ©΄ 1+2+3+4 = 10(sum) μ΄κ³ , 9(p)λ³΄λ€ ν¬λ―λ‘ 4λ²μ§Έ λκ°μ μ λΌμΈ(i=4)μ μ‘΄μ¬νλ€.
4λ²μ§Έ λΌμΈμ μ‘΄μ¬νλ μλ€μ xμ’ν + yμ’νμ κ°μ΄ 5μ΄λ€.
xμ μ’νλ iκ°μμ (sum-p) λ₯Ό λΊ κ°μ΄κ³ ,
x + y = (i+1) μ΄λΌλ μμ΄ μ±λ¦½νλ―λ‘, y = (i+1) - x λΌλ μμ΄ μ±λ¦½νλ€.
μ΅μ’ μ μΌλ‘ x, y μ’νλ λ€μκ³Ό κ°λ€.
x1 = i - (sum1-p);
y1 = (i+1) - x1;
μ κ·μΉμΌλ‘ 첫λ²μ§Έ, λλ²μ§Έ κ°μ λν x, y μ’νκ°μ μ°Ύμ μ μλ€.
μ΅μ’ μ μΌλ‘ λ x, y μ’νμ ν©μλν κ°μ ꡬν΄μΌ νλ€.
μ΄κ±°λ λλ (1, y)μ μ‘΄μ¬νλ κ°μ₯ μ’μΈ‘ κΌλκΈ°κ°μ λ¨Όμ μ°Ύμμ£Όμλ€.
(1,1) = 1
(1,2) = 2
(1,3) = 4
(1,4) = 7
(1,5) = 11 ...
μ μμλ 1, 2, 3, 4 μ© μ¦κ°νλ κ·μΉμ΄ μ‘΄μ¬νλ€.
13(3, 3)μ μλ‘λ€λ©΄ κ°μ₯ μ’μΈ‘ κΌλκΈ°μ κ°μ 11(1, 5) μ΄λ€.
11 = 1+ 1+2+3+4 μ κ°μ΄λ€.
μ¦ i=1 λΆν° (3+3)-2 κΉμ§ λν κ°κ³Ό λμΌνλ€.
for(int i=1; i<(x3+y3)-1; i++) {
sum3 += i;
}
λ°λΌμ μ forλ¬ΈμΌλ‘ κ°μ₯ μΌμͺ½ κΌλκΈ°μ κ°μ ꡬν μ μκ³ ,
κ·Έ μ΄νμ ν΄λΉ x, y μ’νκ°μ λͺκ°μ xμ’νλ§νΌ μ΄λνλμ§ λνλ©΄ λλ€.
result = sum3 + (x3-1);
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[SW Expert Academy] - (D3)7087. λ¬Έμ μ λͺ© λΆμ΄κΈ° (0) | 2020.06.04 |
---|---|
[SW Expert Academy] - (D3)5948. μμμ΄μ 7-3-5 κ²μ (0) | 2020.06.02 |
[SW Expert Academy] - (D3)3142. μμ€μ΄μ μ λΉν λΏμ μ² (0) | 2020.05.31 |
[SW Expert Academy] - (D3)5515. 2016λ μμΌ λ§μΆκΈ° (0) | 2020.05.27 |
[SW Expert Academy] - (D3)8500. κ·Ήμ₯ μ’μ (0) | 2020.05.26 |
λκΈ