201612-1 中间数
自己做都是50分,从两边往中间走,这里参考别人满分实现代码从中间向两边走:
n = int(input())
data = list(map(int,input().split()))
data_sort = sorted(data)
middle = n//2
before = n//2
after = n//2
while before>0 and data_sort[middle] == data_sort[before-1]:
before-=1
while after< n-1 and data_sort[middle] == data_sort[after+1]:
after+=1
if before==n-1-after:
print(data_sort[middle])
else:
print(-1)
201612-2 工资计算
我自己只做了90分,没有注意到题目中的一句话:
“所有评测数据保证小明的税前工资为一个整百的数。”
写一下参考别人的满分实现:
n = int(input())
data_range = [0,1500,4500,9000,35000,55000,80000,1000000]
data_rate = [0,0.03,0.1,0.2,0.25,0.3,0.35,0.45]
T = 3500
data_max = []
for i in range(len(data_range)):
if i == 0:
data = data_range[0]-data_range[0]*data_rate[0]
data_max.append(int(T+data))
else:
data = (data_range[i]-data_range[i-1]) - (data_range[i]-data_range[i-1])*data_rate[i]
data_max.append(int(T+data))
T += data
if(n<=3500):
s = n
else:
for i in range(len(data_max)):
if n>data_max[i] and n<=data_max[i+1]:
s = 3500+data_range[i]
s += int((n-data_max[i])/(1-data_rate[i+1]))
s= 100*(round(s/100))
break
print(s)
CCF的小点也太多了吧!!!