WA

P2367 语文成绩

这个有问题 ``` for(int i = 2;i <= n;i ++) a[i] -= a[i - 1]; ``` 你的本意是要初始化差分数组,但是直接用后者减去前者,就不止会减去前一项输入的值 比如样例的 1 1 1 初始化差分后应该是 ``` 1 1 1 // 原输入 -1 -1 // 后一赋前一项的负值 1 0 0 //最终的值 ``` 如果按照你写的就是 ``` 1 1 1 //输入 1 0 1 //直接用后一项减去前一项 ``` 改成这样就可以过了 ``` int x; cin >> x; a[i] += x; a[i + 1] -= x; ```
by luoguerepp @ 2024-04-05 10:56:59


@[luoguerepp](/user/1276544) 感谢!
by newbie_001 @ 2024-04-07 22:18:49


|