import sys
flag=1if flag ==1:whileTrue:
line = sys.stdin.readline().strip()if line =='':break
lines = line.split()
n=int(lines[0])
m=int(lines[1])deffun(n,m,i=1):sum=0
symbol=1if(i!=n):for index,number inenumerate(range(i,n+1)):if index%m==0:
symbol*=(-1)sum+=number*symbol
# print(number*symbol)returnsumdeffastfun(n,m):
first=(n//(2*m))*m*m
last=fun(n,m,2*m*(n//(2*m)))# print(first)# print(last)return first+last
print(fastfun(n,m))
# 牛牛和羊羊正在玩一个纸牌游戏。这个游戏一共有n张纸牌, 第i张纸牌上写着数字ai。# 牛牛和羊羊轮流抽牌, 牛牛先抽, 每次抽牌他们可以从纸牌堆中任意选择一张抽出, 直到纸牌被抽完。# 他们的得分等于他们抽到的纸牌数字总和。# 现在假设牛牛和羊羊都采用最优策略, 请你计算出游戏结束后牛牛得分减去羊羊得分等于多少。import sys
flag=1# flag=0if flag ==1:
inputlist=[]whileTrue:
line = sys.stdin.readline().strip()if line =='':break
lines = line.split()for item in lines:
inputlist.append(int(item))# inputlist=[4,20,18,2,18]
n=inputlist[0]
a=inputlist[1:]defquicksoft(array):iflen(array)<=1:return array
less=[];
greater=[];
piovt=array.pop()for item in array:if item<=piovt:
less.append(item)else:
greater.append(item)return quicksoft(less)+[piovt]+quicksoft(greater)deffun(n,a):
a=quicksoft(a)# print(a)
niu=0
yang=0whileTrue:
niu+=a.pop()# print(niu)
n-=1if(n==0):break
yang+=a.pop()# print(yang)
n-=1if(n==0):breakreturn niu - yang
print(fun(n,a))
import sys
import math
import copy
flag=1
flag=0if flag ==1:
inputlist=[]whileTrue:
line = sys.stdin.readline().strip()if line =='':break
lines = line.split()for item in lines:
inputlist.append(int(item))if flag==0:
inputlist=[100,382]
n=inputlist[0]
m=inputlist[1]defbase(N,M):
temp=M//N
array=[]for i inrange(N):
array.append(temp)for i inrange(M%N):
array[-i]+=1return array
deffun(array):'''小Q的父母要出差N天,走之前给小Q留下了M块巧克力。
小Q决定每天吃的巧克力数量不少于前一天吃的一半,但是他又不想在父母回来之前的某一天没有巧克力吃,
请问他第一天最多能吃多少块巧克力'''while(True):
arraycopy=copy.deepcopy(array)for index_Front inrange(len(array)):for index_Back inrange(index_Front+1,len(array)):
temp2= array[index_Back]if array[index_Front]>=(array[index_Back]//2):sum= array[index_Front]+array[index_Back]
base=sum//3if(array[index_Front]+array[index_Back])%3==2:
array[index_Front]=base+1
array[index_Back]=base*2+1elif(array[index_Front]+array[index_Back])%3==1:
array[index_Front]=base
array[index_Back]=base*2+1else:
array[index_Front]=base
array[index_Back]=base*2if array[index_Back]==temp2:breakelse:breakif(array==arraycopy):for i inrange(len(array)-1):if(array[i]*2<array[i+1]):
array[i]+=1
array[i+1]-=1breakreturn array
array=fun(base(n,m))print(array[-1])if flag==0:print(array)print(sum(array))print(len(array))
import math
import copy
import sys
inputlist=[]whileTrue:
line = sys.stdin.readline().strip()if line =='':break
lines = line.split()for item in lines:
inputlist.append(int(item))
n=inputlist[0]
m=inputlist[1]# 计算第一天吃s个巧克力一共需要多少个多少个巧克力deffunsum(s,n):sum=0;for i inrange(n):sum+=s
s=(s+1)//2returnsum# 二分查找deffun(n,m):if n==1:return m;
low=1
high=m
while low<high:
mid=(low+high+1)//2if(funsum(mid,n)==m):return mid
elif(funsum(mid,n)<m):
low=mid
else:
high=mid-1else:return high;print(fun(n,m))
import math
import copy
import sys
inputlist=[]whileTrue:
line = sys.stdin.readline().strip()if line =='':break
lines = line.split()for item in lines:
inputlist.append(int(item))
n=inputlist[0]
m=inputlist[1]# 计算第一天吃s个巧克力一共需要多少个多少个巧克力deffunsum(s,n):sum=0;for i inrange(n):sum+=s
s=(s+1)//2returnsum# 二分查找deffun(n,m):if n==1:return m;
low=1
high=m
while low<high:
mid=(low+high+1)//2if(funsum(mid,n)==m):return mid
elif(funsum(mid,n)<m):
low=mid
else:
high=mid-1else:return high;print(fun(n,m))
import sys
# inputlist=[]# while True:# line = sys.stdin.readline().strip()# if line == '':# break# lines = line.split()# for item in lines:# inputlist.append(int(item))
inputlist=[205,1,92,4,92]
K=inputlist[0]
A=inputlist[1]
X=inputlist[2]
B=inputlist[3]
Y=inputlist[4]defCfun(m,n):
ns,ms,nms=1,1,1for n inrange(1,n+1):
ns*=n
for m inrange(1,m+1):
ms*=m
for nm inrange(1,n-m+1):
nms*=nm
sum= ns//(ms*nms)returnsum# print(Cfun(1,5))deffun(a,x,b,y,k):
answer=[]for i inrange(1,x+1):for j inrange(y):if(a*i+b*(y-j))==k:
answer.append((i,y-j))breakreturn answer
AnswerList=fun(A,X,B,Y,K)
AnswerSum=0for x,y in AnswerList:
AnswerSum+=Cfun(x,X)*Cfun(y,Y)print(Cfun(x,X)+Cfun(y,Y))print(AnswerSum)
import sys
flag =1if flag ==1:
inputlist =[]whileTrue:
line = sys.stdin.readline().strip()if line =='':break
lines = line.split()for item in lines:
inputlist.append(int(item))if flag ==0:
inputlist =[3,2,7,4]
n = inputlist[0]
inlist = inputlist[1:]defquicksoft(qlist):iflen(qlist)<=1:return qlist
else:
low =[]
high =[]
pivot = qlist.pop()for item in qlist:if item <= pivot:
low.append(item)else:
high.append(item)return quicksoft(low)+[pivot]+ quicksoft(high)
outlist = quicksoft(inlist)deffindsum(list, n):sum=0
flag =0while n >0:if flag ==0:sum+=list[n -1]
flag =1else:sum-=list[n -1]
flag =0
n -=1returnsumprint(findsum(outlist, n))# def findmax(list, n):# if n == 0:# return 0# else:# temp = 0# for number in list:# if number > temp:# temp = number# list.remove(temp)# return temp# def findsum(list, n):# sum = 0# flag = 0# while n > 0:# if flag == 0:# sum += findmax(list, n)# flag = 1# else:# sum -= findmax(list, n)# flag = 0# n -= 1# return sum# print(findsum(inlist, n))
import sysflag=1flag=0if flag == 1 : inputlist=[] while True: line = sys.stdin.readline().strip() if line == '': break lines = line.split() for item in lines: ...