QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#443746#6540. Beautiful SequenceFirminoWA 1ms9836kbC++141.3kb2024-06-15 16:25:122024-06-15 16:25:13

Judging History

你现在查看的是最新测评结果

  • [2024-06-15 16:25:13]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:9836kb
  • [2024-06-15 16:25:12]
  • 提交

answer

#include <iostream>
#include <algorithm>
using namespace std;
int read(){
	int re=0,c=getchar();
	while(c<'0'||c>'9') c=getchar();
	while(c>='0'&&c<='9') re=(re<<3)+(re<<1)+(c^48),c=getchar();
	return re;
}
const int maxn=3e5+5;
struct P{
	int v,id;
}ps[maxn];
int n,lg[maxn],a[maxn],sz[maxn],del[maxn],lp[maxn],rp[maxn],cd,tc,flag;
void init(){
	a[n+1]=cd=0;
}
bool cmp(P x,P y){
	if(x.v!=y.v) return x.v<y.v;
	return x.id>y.id;
}
void solve(){
	n=read();
	init();
	for (int i=1;i<=n;i++) a[i]=read();
	tc++;
	if(flag&&tc==174){
		cout<<n<<endl;
		for (int i=1;i<=n;i++) cout<<a[i]<<" ";
		cout<<endl;
	}
	sort(a+1,a+n+1);
	int st=1;
	for (int i=2;i<=n+1;i++){
		if(a[i]!=a[i-1]) sz[++cd]=i-st,st=i;
	}
	for (int i=1;i<=cd;i++) del[i]=0,lp[i]=i-1,rp[i]=i+1,ps[i]=(P){sz[i],i};
	sort(ps+1,ps+cd+1,cmp);
	int ans=n-cd+1,dr=cd-1;
	for (int i=1;i<=cd;i++){
		int lc=0,tp=dr;
		while(tp>ps[i].id&&lc<ps[i].v) lc++,tp=lp[tp];
		//cout<<ps[i].id<<" "<<dr<<" "<<lc<<endl;
		if(lc<ps[i].v) continue;
		ans++;
		while(lc) del[dr]=1,dr=lp[dr],lc--;
		//cout<<ps[i].id<<endl;
		del[ps[i].id]=1,lp[rp[ps[i].id]]=lp[ps[i].id],rp[lp[ps[i].id]]=rp[ps[i].id];
		if(dr==ps[i].id) dr=lp[dr];
	}
	//cout<<endl;
	if(!flag) cout<<ans<<endl;
}
int main(){
	int t=read();if(t==300) flag=1;
	while(t--) solve();
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 9824kb

input:

2
6
1 1 2 3 3 4
5
1 2 2 3 3

output:

4
4

result:

ok 2 number(s): "4 4"

Test #2:

score: 0
Accepted
time: 1ms
memory: 9836kb

input:

2
5
1 2 2 3 3
20
1 1 1 1 1 1 4 5 8 8 8 8 9 9 9 9 10 10 10 10

output:

4
17

result:

ok 2 number(s): "4 17"

Test #3:

score: -100
Wrong Answer
time: 1ms
memory: 9772kb

input:

300
14
1 1 1 2 2 2 3 3 3 4 5 5 6 6
14
1 1 1 2 2 3 3 4 4 5 5 6 7 7
14
1 1 2 2 3 4 4 4 5 5 5 6 6 6
14
1 1 2 2 3 3 3 4 5 5 5 6 6 6
14
1 1 1 1 1 1 2 2 2 2 2 3 3 3
14
1 1 1 1 1 1 1 1 1 1 1 1 1 1
14
1 2 2 3 4 5 5 6 6 6 7 8 8 8
14
1 2 2 2 2 2 3 4 5 6 7 8 9 10
14
1 2 2 3 4 4 4 5 6 6 6 6 6 7
14
1 1 2 2 2 3 3...

output:

14
1 2 2 2 2 3 3 4 5 5 6 6 7 8 

result:

wrong answer 1st numbers differ - expected: '10', found: '14'