时间复杂度与TLE
题号:NC212359
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
64bit IO Format: %lld

题目描述

在ACM比赛中,算法的时间复杂度和运行时间限制有着很大的关联。
大部分的OJ系统运行时间限制1秒对应的复杂度的“数量级”约为1e7~1e8()。“数量级”是一个模糊的单位,对应着复杂度的大小。
例如,如果题目规定的n上限是1e5, 运行时间限制是1秒,你的程序的复杂度是,那么就会TLE(Time limit exceed)。而如果你的程序的复杂度是O(nlog_2n)往往不会超时。

输入描述:

输入共三行。 
第一行包含一个整数代表运行时间限制
第二行包含一个整数代表描述中的上限
第三行包含一个字符串,该字符串是"n", "n^2", "n^3", "nlogn"中的一种。(字符串没有引号)默认对数底为2,即nlogn当成来计算。

输出描述:

如果根据字符串所计算出来的结果小于等于t * 1e7, 输出"Safe"(不包含引号,下同)。 
如果结果大于t * 1e7小于等于t * 1e8, 输出"Dangerous"
如果结果大于t * 1e8, 输出"TLE"
示例1

输入

复制
1
100
n^3

输出

复制
Safe
示例2

输入

复制
3
10000000
nlogn

输出

复制
Dangerous
示例3

输入

复制
3
20000
n^2

输出

复制
TLE

备注:

C语言的库函数 #include<math.h> 中有一个库函数 double log2(double x) 可以用来计算以2为底的数的对数值,例如 double a = log2(4); 那么 a = 2.0