본문 바로가기

백준

13116 30번

아 이걸 어떻게 푸냐,, 싶어서 아이디어만 찾아봤다

 

알고보니 부모가 / 2한거랑 같았다!

 

바로 맞출 줄 알았는데 시간초과가 났다;; 뭔가 cin 때문일 것 같아서 cin.tie(NULL) 했는데 그래도 틀림ㅋㅋ

 

또 scanf 썼나 싶었는데 아니고.. 알고보니 자기자신을 포함 안 해서 문제였다.

 

그래서 실수한 부분 찾아서 고치고 cin.tie도 해주니 맞았다. 

 

 

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <bitset>

#define xx first
#define yy second
#define all(x) (x).begin(), (x).end()
#define MOD 1000000009

using namespace std;
using i64 = long long int;
using ii = pair<int, int>;
using ii64 = pair<i64, i64>;
using iii = tuple<int, int, int>;

void    solve()
{
    int a, b;
    cin >> a >> b;

    vector<int> va;
    vector<int> vb;

    for (int i = 0; a > 0 || b > 0; i++)
    {
        if (a > 0)
        {
            va.push_back(a);
            a /= 2;
        }
        if (b > 0)
        {
            vb.push_back(b);
            b /= 2;
        }
    }

    reverse(all(va));
    reverse(all(vb));

    int maxp = 1;
    for (int i = 0; i < min(va.size(), vb.size()); i++)
    {
        if (va[i] == vb[i])
            maxp = va[i];
    }
    cout << maxp * 10 << "\n";
}

int     main()
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);

    int t;
    cin >> t;

    for (int i = 0; i < t; i++)
        solve();

    return 0;
}

'백준' 카테고리의 다른 글

1463 1로 만들기  (0) 2020.10.15
13164 행복 유치원  (0) 2020.10.13
2331 반복수열  (0) 2020.10.13
8892 팰린드롬  (0) 2020.10.13
2947 나무 조각  (0) 2020.10.12