import sys n = int(sys.stdin.readline().strip()) a = list(map(int,sys.stdin.readline().strip().split(" "))) b = list(map(int,sys.stdin.readline().strip().split(" "))) res = 1 m_list = [] for i in range(n): m_list.append(-i) # max_a = max(a) for j in range(n): if b[j] >= (max_a:=max(a)): m_list[i] += 1 a.remove(max_a) res *= m_list[i] if res <= 0: break if res <= 0: print(0) else: print(res%100000007) 求大佬指点一下为什么不对。。显示超时
通过率92.31%,不知道卡哪里了,第一题 package main import ( "fmt" "sort" ) func main(){ n := 0 fmt.Scanf("%d\n", &n) var a []int var b []int for i:=0;i<n;i++{ x := 0 fmt.Scan(&x) a = append(a, x) } for i:=0;i<n;i++{ x := 0 fmt.Scan(&x) b = append(b, x) } //排序 sort.Ints(a) sort.Ints(b) res := 1 count := 0 for i:=len(a)-1;i>=0;i--{ for j:=len(b)-1-count;j>=-1;j--{ if j >= 0 && a[i]<=b[j]{ continue } //记录等于的元素下标 idx := j+1 //元素的选择次数 res = res * (len(b)-count-idx) count++ break } } fmt.Println(res%100000007) }