A38916. 编程实现:六月一日是国际儿童节,小蓝的学校为迎接儿童节要在学校的一块正方形空地上使用不同颜色的花卉摆放图案。为了摆放的更精准,图案更漂亮,小蓝把这块正方形空地同比例缩小将其画在纸上,并平分成100*100的方格,每个方格的坐标点为,(1,1)...(100,100),如下图:首先在指定坐标的方格内放置红色的花卉(每个方格放一盆),完成后,找出最多有多少盆红色花卉在同一条直线上。(同一直线包含同一…
填空题
困难
知识点
题目描述
编程实现:
六月一日是国际儿童节,小蓝的学校为迎接儿童节要在学校的一块正方形空地上使用不同颜色的花卉摆放图案。
为了摆放的更精准,图案更漂亮,小蓝把这块正方形空地同比例缩小将其画在纸上,并平分成100*100的方格,每个方格的坐标点为,(1,1)...(100,100),如下图:

首先在指定坐标的方格内放置红色的花卉(每个方格放一盆),完成后,找出最多有多少盆红色花卉在同一条直线上。(同一直线包含同一列、同一行、同一对角线,红色花卉可以连续也可以不连续)
如:指定的坐标(2,1)、(3,2)、(5,2)、(4,3)、(3,4)、(6,5)的方格内放置红色的花卉,其中最多的红色花卉在同一条直线上的坐标点为(2,1)、(3,2)、(4,3)、(6,5),故最多有4盆红色的花卉在同一条直线上。

输入样例:
2,1 3,2 5,2 4,3 3,4 6,5
输出样例:
4
参考答案
#初始化读入数据
lst=input().split(' ')
ls=[]
for i in lst:
ls.append(list(map(int,i.split(','))))
m=0
# 右斜线
ls_=[]
for i in ls:
ls_.append(sum(i))
for i in ls_:
m=max(m,ls_.count(i))
#左斜线
ls_=[]
for i in ls:
ls_.append(i[0]-i[1])
for i in ls_:
m=max(m,ls_.count(i))
#行
ls_=[]
for i in ls:
ls_.append(i[0])
for i in ls_:
m=max(m,ls_.count(i))
#列
ls_=[]
for i in ls:
ls_.append(i[1])
for i in ls_:
m=max(m,ls_.count(i))
print(m)
上一题
下一题