QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#753803#5983. Pretty Good Proportionmzmz0010 5374ms20816kbC++141.3kb2024-11-16 13:39:422024-11-16 13:39:42

Judging History

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

  • [2024-11-16 13:39:42]
  • 评测
  • 测评结果:0
  • 用时:5374ms
  • 内存:20816kb
  • [2024-11-16 13:39:42]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
struct H{long double w;long long x,y;}a[1000007];
bool cmp(H x,H y){return x.w<y.w;}
long long n,m,k,l,s,wl,fl,ts;
long double f;
const long double eps=1e-9,weps=1e-12;
string st;
bool ch(long double d){
	long double ma=-1e9,mi=1e9;wl=1e9;++ts;
	for(int i=0;i<=n;i++){
		ma=max(ma,a[i].y+a[i].x*-(f+d));
		if(fabs(ma-(a[i].y+a[i].x*-(f+d)))>weps)wl=min(wl,a[i].x+1);
	}
	for(int i=n;i>=0;i--){
		mi=min(mi,a[i].y+a[i].x*-(f+d));
		if(fabs(mi-(a[i].y+a[i].x*-(f+d)))>weps)wl=min(wl,a[i].x+1);
	}
	ma=-1e9;mi=1e9;
	for(int i=0;i<=n;i++){
		ma=max(ma,a[i].y+a[i].x*-(f-d));
		if(fabs(ma-(a[i].y+a[i].x*-(f-d)))>weps)wl=min(wl,a[i].x+1);
	}
	for(int i=n;i>=0;i--){
		mi=min(mi,a[i].y+a[i].x*-(f-d));
		if(fabs(mi-(a[i].y+a[i].x*-(f-d)))>weps)wl=min(wl,a[i].x+1);
	}
	return (wl!=1e9);
}
int main(){
//	freopen("c.in","r",stdin);
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int T,sd;
	cin>>T;
	while(T--){
		cin>>sd;fl=1;
		cin>>f>>st;n=st.size();a[0].w=a[0].x=a[0].y=0;
		for(int i=1;i<=n;i++)a[i].w=-f+(st[i-1]-'0')+a[i-1].w,a[i].x=i,a[i].y=a[i-1].y+st[i-1]-'0';
		sort(a,a+n+1,cmp);
		long double l=0,r=1;
		while((r-l)>eps){
			long double mid=(l+r)/2;
			if(ch(mid))r=mid,fl=wl;
			else l=mid;
		}
		cout<<fl-1<<'\n';
	}
	
} 

詳細信息

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 14ms
memory: 3892kb

input:

100
10 0.827672
0010101011
4 0.932623
0100
1000 0.834002
011001110010111110000110101100010010100101101110110111100010101101111100110001011000110100010100011011000001100001010110111101111010110110000110011000111000011110101100100111111001111011011100111001011101010100111011100011110011100011110010001...

output:

6
1
10
0
0
1
0
0
0
0
0
4
5
564
0
0
0
0
0
0
0
0
0
844
0
0
1
155
0
0
0
0
0
0
393
1
173
0
2
0
130
3
0
840
1
5
0
0
74
0
1
0
0
0
0
0
1
0
1
0
0
0
8
0
0
838
2
2
0
0
0
612
0
5
0
0
0
0
0
0
1
0
320
0
0
6
79
0
0
0
0
0
1
0
1
158
0
0
3
0

result:

wrong answer 1st lines differ - expected: 'Case #1: 6', found: '6'

Subtask #2:

score: 0
Wrong Answer

Test #2:

score: 0
Wrong Answer
time: 5374ms
memory: 20816kb

input:

100
15 0.333333
000000000011000
10 0.418754
0101100001
2 0.499999
01
3 0.977951
001
2 0.249999
01
10 0.670229
0111011001
1000 0.500001
001101111110110010110000010010110001110010001101110111010011000010100011011101010110011011011010111110011100011000001000101011100011010100101101111110100101011010111...

output:

6
0
0
2
0
0
0
0
0
0
0
0
0
0
0
4333
0
0
123
0
0
0
0
0
0
0
0
3
0
676
0
0
2
0
0
0
0
0
1
2
0
278
2
1
1
0
0
0
0
0
0
0
0
1
0
1
0
5
5
0
1
1
0
2
1
0
6
3
0
500
1
0
0
1
0
1
188
3
0
6
499838
0
0
5
0
0
0
499840
0
0
8
4
0
1
0
0
0
92
0
0

result:

wrong answer 1st lines differ - expected: 'Case #1: 6', found: '6'