社区讨论

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 条回复,欢迎继续交流。

正在加载回复...