社区讨论
abcF为什么样例3是627,求调
学术版参与者 9已保存回复 13
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 12 条
- 当前快照
- 1 份
- 快照标识符
- @mj4cjaix
- 此快照首次捕获于
- 2025/12/13 21:43 2 个月前
- 此快照最后确认于
- 2025/12/16 15:35 2 个月前
rt
CPP#include <bits/stdc++.h>
#define int long long
using namespace std;
inline int read()
{
int x = 0,p = 1;
char c = getchar();
while(c > '9' || c < '0') p = c == '-' ? -1 : 1,c = getchar();
while(c >= '0' && c <= '9') x = (x << 1) + (x << 3) + (c ^ 48),c = getchar();
return p * x;
}
template<typename _Tp> inline void _write(_Tp x) { if(x > 9) _write(x / 10); putchar(x % 10 | 48); }
template<typename _Tp> inline void write(_Tp x) { if(x < 0) putchar('-'),x = -x; _write(x); }
template<typename _Tp> inline void writeln(_Tp x) { write(x); puts(""); }
int n,b[500010],pos[500010];
signed main()
{
n = read();
for(int i = 1;i <= n;i++) b[i] = read(),pos[b[i]] = i;
int ans = n + n * (n + 1) / 2;
int minn = 21e8,maxn = 0;
for(int i = 1;i <= n;i++)
{
minn = min(minn,pos[i]);
maxn = max(maxn,pos[i]);
if(maxn - minn + 1 == i) ans--;
}
writeln(ans);
return 0;
}
回复
共 13 条回复,欢迎继续交流。
正在加载回复...