P1866 10分 C语言本地能过,洛谷上不能过。

P1866 编号

$a_i-i$小于0会出错
by _TLJYatm_ @ 2021-10-17 22:05:30


@[_TLJYatm_](/user/45199) 前面检查过了如果ai-i<0的话就直接输出0并且return了
by jsj8051 @ 2021-10-17 23:17:05


@[jsj8051](/user/546219) usigned long long相减小于0就会错啊
by _TLJYatm_ @ 2021-10-18 09:17:59


@[_TLJYatm_](/user/45199) 把unsigned去掉了,还是不对
by jsj8051 @ 2021-10-18 09:26:02


@[jsj8051](/user/546219) 你本地测能过数据吗
by _TLJYatm_ @ 2021-10-18 09:52:06


```cpp #include<stdio.h> long long M=1000000007; int main() { int n,i,j,temp,count=0; scanf("%d",&n); long long a[n],ans=1; for(i=0;i<n;i++) { scanf("%lld",&a[i]); } for(j=0;j<n-1;j++) { for(i=0;i<n-j-1;i++) { if(a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; } } } for(i=1;i<=n;i++) { if(a[count]-i+1<0) { printf("0"); return 0; } count++; } count=0; for(i=0;i<n;i++) { ans=ans*(a[i]-i)%M; ans%=M; count++; } printf("%d",ans); } ``` @[jsj8051](/user/546219) a[i]输入要long long 然后if(a[count]-i<0) 改成if(a[count]-i+1<0)
by _TLJYatm_ @ 2021-10-18 09:58:11


@[_TLJYatm_](/user/45199) AC了,谢谢大佬指点
by jsj8051 @ 2021-10-18 12:38:50


|