Submission #994708


Source Code Expand

#include <vector>
#include <iostream>
#include <utility>
#include <algorithm>
#include <string>
#include <deque>
#include <queue>
#include <functional>
#include <cmath>
#include <iomanip>
#include <map>
#include <numeric>
#include <list>
#include <assert.h>
#include <math.h>
#include <valarray>
#include <stdio.h>
#include <algorithm>
#include <set>
#include <complex>
#include <list>

using namespace std;
typedef long long int LL;
typedef pair<long long int, long long int> pii;
typedef pair<double, double> pdd;

#define SORT(c) sort((c).begin(),(c).end())
#define BACKSORT(c) sort((c).begin(),(c).end(),std::greater<LL>())
#define FOR(i,a,b) for(LL i=(a);i<(b);++i)
#define REP(i,n)  FOR(i,0,n)

LL pow(LL a,LL b) {
	if (b == 1) {
		return a;
	}else
		if (b == 0) {
			return 1;
		}else
			if (b % 2 == 0) {
				return pow(a, (LL)(b / 2))*pow(a, (LL)(b / 2));
			}
			else {
				return a*pow(a, (LL)((b-1) / 2))*pow(a, (LL)((b - 1) / 2));
			}
}

int main()
{
	LL N, A;
	cin >> N >> A;
	LL cost = N;
	LL n = 2;
	
	LL Nsqrt = (LL)floor(sqrt(N));
	LL m = 0;
	LL k = 1;
	while (true) {
		if (n - m >= 0 && pow(Nsqrt, n - m)*pow(Nsqrt + 1, m) < N) {
			m++;
		}
		else {
			while (true) {
				if (n - m - k >= 0 && pow(Nsqrt, n - m - k)*pow(Nsqrt + 1, m)*pow(Nsqrt - 1, k) >= N) {
					k++;
				}
				else {
					k--;
					break;
				}
			}
			break;
		}
	}
	LL newcost = Nsqrt*(n-m-k)+ (Nsqrt + 1)*m+ (Nsqrt - 1)*k + A*(n - 1);
	if (newcost < cost) {
		cost = newcost;

		while (true) {
			n++;

			FOR(i, 1, Nsqrt) {
				if (pow(i,n) >= N) {
					Nsqrt = i-1;
					break;
				}
			}
			m = 0;
			k = 1;
			while (true) {
				if (n-m>=0&&pow(Nsqrt, n - m)*pow(Nsqrt + 1, m) < N) {
					m++;
				}
				else {
					while (true) {
						if (Nsqrt!=1&&n - m - k >= 0 && pow(Nsqrt, n - m - k)*pow(Nsqrt + 1, m)*pow(Nsqrt - 1, k) >= N) {
							k++;
						}
						else {
							k--;
							break;
						}
					}
					break;
				}
			}
			newcost = Nsqrt*(n - m - k) + (Nsqrt + 1)*m + (Nsqrt - 1)*k + A*(n - 1);
			if (newcost >= cost) {
				break;
			}
			else {
				cost = newcost;
			}
			if (Nsqrt == 1) { break; }
		}
	}

	cout << cost << endl;
	
}

Submission Info

Submission Time
Task E - Cookies
User ten986
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2267 Byte
Status WA
Exec Time 3 ms
Memory 384 KB

Judge Result

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