Submission #10045357


Source Code Expand

#include <iostream>
#include <map>
#include <set>
#include <cmath>
#include <algorithm>
#include <vector>
#include <string>
#include <fstream>
#include <bitset>
#include <queue>
#include <stack>
#include <deque>
#include <complex>
#include <iomanip>
#include <stdio.h>
#include <string.h>
#include <random>
#include <functional>

using std::cin;
using std::cout;
using std::cerr;
using std::endl;

using std::map;
using std::set;
using std::bitset;
using std::vector;
using std::string;
using std::multimap;
using std::multiset;
using std::deque;
using std::queue;
using std::stack;
using std::pair;
using std::iterator;

using std::sort;
using std::stable_sort;
using std::reverse;
using std::max_element;
using std::min_element;
using std::unique;
using std::ios_base;
using std::swap;
using std::fill;

using std::setprecision;
using std::fixed;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<long long> vl;
typedef string S;

ll min(ll a, ll b) {return a < b ? a : b;}
ll min(int a, ll b) {return a < b ? a : b;}
ll min(ll a, int b) {return a < b ? a : b;}
ll min(int a, int b) {return a < b ? a : b;}

ll max(ll a, ll b) {return a > b ? a : b;}
ll max(int a, ll b) {return a > b ? a : b;}
ll max(ll a, int b) {return a > b ? a : b;}
ll max(int a, int b) {return a > b ? a : b;}

namespace MySpace{

};

#define F(i, n) for (int (i) = 0; (i) != (n); (i)++)
#define fi first
#define se second
#define re return
#define all(x) (x).begin(), (x).end()

const long long INF = 1e18;

long long inq(long long a, long long b)
{
    if (b == 0) return 1;
    long long l = inq(a, b / 2);
    if (b % 2)
    {
        long long k = l;
        if (k > INF / l) return INF;
        k = l * l;
        if (k > INF / a) return INF;
        return k * a;
    }
    long long k = l;
    if (k > INF / l) return INF;
    return l * l;
}

long long n, a;
long long ans;

signed main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    cin >> n >> a;
    ans = n;
    for (long long c = 0; c <= 50; c++)
    {
        long long res = c * a;
        long long l = 1, r = n;
        while (l + 1 < r)
        {
            long long m = (l + r) / 2;
            if (inq(m, c + 1) >= n) r = m;
            else l = m;
        }
        long long summ = (c + 1) * r;
        long long p = inq(r, c + 1);
        for (int i = 0; i < c + 1; i++)
        {
            if (p >= n) ans = min(ans, summ + res);
            p = p / r * (r - 1);
            summ--;
            if (p >= n) ans = min(ans, summ + res);
        }
    }
    cout << ans;
}

Submission Info

Submission Time
Task E - Cookies
User IgorI
Language C++14 (GCC 5.4.1)
Score 1000
Code Size 2749 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name sample dataset1 dataset2
Score / Max Score 0 / 0 500 / 500 500 / 500
Status
AC × 3
AC × 27
AC × 72
Set Name Test Cases
sample sample-01.txt, sample-02.txt, sample-03.txt
dataset1 sample-01.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt
dataset2 sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 02-09.txt, 02-10.txt, 02-11.txt, 02-12.txt, 02-13.txt, 02-14.txt, 02-15.txt, 02-16.txt, 02-17.txt, 02-18.txt, 02-19.txt, 02-20.txt, 02-21.txt, 02-22.txt, 02-23.txt, 02-24.txt, 02-25.txt, 02-26.txt, 02-27.txt, 02-28.txt, 02-29.txt, 02-30.txt, 02-31.txt, 02-32.txt, 02-33.txt, 02-34.txt, 02-35.txt, 02-36.txt, 02-37.txt, 02-38.txt, 02-39.txt, 02-40.txt, sample-01.txt, sample-02.txt, sample-03.txt
Case Name Status Exec Time Memory
01-01.txt AC 1 ms 256 KB
01-02.txt AC 1 ms 256 KB
01-03.txt AC 1 ms 256 KB
01-04.txt AC 1 ms 256 KB
01-05.txt AC 1 ms 256 KB
01-06.txt AC 1 ms 256 KB
01-07.txt AC 1 ms 256 KB
01-08.txt AC 1 ms 256 KB
01-09.txt AC 1 ms 256 KB
01-10.txt AC 1 ms 256 KB
01-11.txt AC 1 ms 256 KB
01-12.txt AC 1 ms 256 KB
01-13.txt AC 1 ms 256 KB
01-14.txt AC 1 ms 256 KB
01-15.txt AC 1 ms 256 KB
01-16.txt AC 1 ms 256 KB
01-17.txt AC 1 ms 256 KB
01-18.txt AC 1 ms 256 KB
01-19.txt AC 1 ms 256 KB
01-20.txt AC 1 ms 256 KB
01-21.txt AC 1 ms 256 KB
01-22.txt AC 1 ms 256 KB
01-23.txt AC 1 ms 256 KB
01-24.txt AC 1 ms 256 KB
01-25.txt AC 1 ms 256 KB
01-26.txt AC 1 ms 256 KB
02-01.txt AC 1 ms 256 KB
02-02.txt AC 1 ms 256 KB
02-03.txt AC 1 ms 256 KB
02-04.txt AC 1 ms 256 KB
02-05.txt AC 1 ms 256 KB
02-06.txt AC 1 ms 256 KB
02-07.txt AC 1 ms 256 KB
02-08.txt AC 1 ms 256 KB
02-09.txt AC 1 ms 256 KB
02-10.txt AC 1 ms 256 KB
02-11.txt AC 1 ms 256 KB
02-12.txt AC 1 ms 256 KB
02-13.txt AC 1 ms 256 KB
02-14.txt AC 1 ms 256 KB
02-15.txt AC 1 ms 256 KB
02-16.txt AC 1 ms 256 KB
02-17.txt AC 1 ms 256 KB
02-18.txt AC 1 ms 256 KB
02-19.txt AC 1 ms 256 KB
02-20.txt AC 1 ms 256 KB
02-21.txt AC 1 ms 256 KB
02-22.txt AC 1 ms 256 KB
02-23.txt AC 1 ms 256 KB
02-24.txt AC 1 ms 256 KB
02-25.txt AC 1 ms 256 KB
02-26.txt AC 1 ms 256 KB
02-27.txt AC 1 ms 256 KB
02-28.txt AC 1 ms 256 KB
02-29.txt AC 1 ms 256 KB
02-30.txt AC 1 ms 256 KB
02-31.txt AC 1 ms 256 KB
02-32.txt AC 1 ms 256 KB
02-33.txt AC 1 ms 256 KB
02-34.txt AC 1 ms 256 KB
02-35.txt AC 1 ms 256 KB
02-36.txt AC 1 ms 256 KB
02-37.txt AC 1 ms 256 KB
02-38.txt AC 1 ms 256 KB
02-39.txt AC 1 ms 256 KB
02-40.txt AC 1 ms 256 KB
sample-01.txt AC 1 ms 256 KB
sample-02.txt AC 1 ms 256 KB
sample-03.txt AC 1 ms 256 KB