为什么开O2会RE啊

P5200 [USACO19JAN] Sleepy Cow Sorting G

代码: ```cpp #include<bits/stdc++.h> using namespace std; const int MAXN=1e5; int n,p[MAXN+5],ans; int sum[MAXN+5]; int lowbit(int x) {return x&-x;} int GetSum(int x) { int cnt=0; for(;x>0;x-=lowbit(x)) cnt+=sum[x]; return cnt; } int Plus(int x) {for(;x<=n;x+=lowbit(x)) sum[x]++;} int main() { scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&p[i]); Plus(p[n]); for(int i=n-1;i;i--) { if(p[i]>p[i+1]) { printf("%d\n",i); for(int j=1;j<=i;j++) { printf("%d ",i-j+GetSum(p[j])); Plus(p[j]); } return 0; } Plus(p[i]); } printf("0\n"); return 0; } ```
by Seauy @ 2020-06-09 17:22:02


O2玄学
by 血色黄昏 @ 2020-06-09 17:28:04


有[UB](https://studyingfather.blog.luogu.org/undefined-behavior)
by liujiageng @ 2020-06-09 17:39:31


UB
by Ryo_Yamada @ 2020-06-09 17:44:55


~~代码厌氧~~
by LeavingZ @ 2020-06-09 17:52:34


soga……那树状数组要怎样不 UB 啊……
by Seauy @ 2020-07-05 18:18:59


@[QuantumCheshireCat](/user/54591) ``` int Plus() ``` 没有 `return` 却写的 `int` 所以会 RE ($n$ 年后翻到这道题准备写一下的时候烤咕(雾))
by Ryo_Yamada @ 2020-09-13 15:55:24


@[BreezeEnder](/user/242543) ~~好神奇啊我跟我同学都写了没 return 的修改~~
by Seauy @ 2020-09-13 16:08:31


|