Hoon222y

[BOJ 1011] Fly me to the Alpha Centauri 본문

코딩/BOJ & 알고스팟

[BOJ 1011] Fly me to the Alpha Centauri

hoon222y 2017. 10. 7. 17:18

https://www.acmicpc.net/problem/1011


힌트는 https://www.acmicpc.net/board/view/13747 에 아주 상세히 적혀있다. 주의할 점은 i를 50000까지 했을때 int범위 벗어난다는 것이다. 후 ... (ll)안해서 계속 틀렸다 ..


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <set>
#include <queue>
#include <stack>
#define MAX_N 11111111
#define INF 1e8
#define MOD 1000000007
 
typedef long long ll;
using namespace std;
 
ll t,a,b;
 
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cin >>t;
    while(t--){
        cin >>>>b;
        ll diff = b-a;
        
        ll pos = 0;
        
        for(int i=1;i<=50000; i++){
            if(diff < (ll)i*i){
                pos = i;
                break;
            }
        }
        
        ll ans = ((pos-1)*2)-1;
        diff -= ((pos-1)*(pos-1));
        
        int t = (diff/(pos-1));
        
        if(diff%(pos-1== 0){
            ans+=t;
        }else{
            ans +=(t+1);
        }
        cout << ans <<endl;
    }
}
cs

'코딩 > BOJ & 알고스팟' 카테고리의 다른 글

[BOJ 1371] 가장 많은 글자  (0) 2017.10.11
[BOJ 1328] 고층 빌딩  (0) 2017.10.09
[BOJ 1495] 기타리스트  (0) 2017.10.07
[BOJ 5557] 1학년  (0) 2017.10.07
[BOJ 1126] 같은 탑  (0) 2017.10.07
Comments