QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#752992#5983. Pretty Good Proportionsdyzpf27 ✓622ms25036kbC++14798b2024-11-16 10:50:072024-11-16 10:50:07

Judging History

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

  • [2024-11-16 10:50:07]
  • 评测
  • 测评结果:27
  • 用时:622ms
  • 内存:25036kb
  • [2024-11-16 10:50:07]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
using namespace std;
const long double eps=1e-12;
int n,ind=1e16,sum[1000005],p[1000005];
long double f,v[1000005],ans=1e16;
string s;
inline bool cmp(int x,int y){
	return v[x]<v[y];
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
	int T;
	cin>>T;
	for(int t=1;t<=T;t++){
	ind=1e16,ans=1e16;
	cin>>n>>f>>s;n=s.length();
	for(int i=1;i<=n;i++) sum[i]=sum[i-1]+(s[i-1]-'0');
	for(int i=0;i<=n;i++) v[i]=sum[i]-i*f;
	for(int i=0;i<=n;i++) p[i]=i;
	sort(p,p+n+1,cmp);
	for(int i=0;i<n;i++) ans=min(ans,abs(v[p[i]]-v[p[i+1]])/abs(p[i]-p[i+1]));
	for(int i=0;i<n;i++)
		if(abs(ans-abs(v[p[i]]-v[p[i+1]])/abs(p[i]-p[i+1]))<eps) ind=min({ind,p[i],p[i+1]});
	cout<<"Case #"<<t<<": "<<ind<<'\n';
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 5
Accepted

Test #1:

score: 5
Accepted
time: 2ms
memory: 5868kb

input:

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

output:

Case #1: 6
Case #2: 1
Case #3: 10
Case #4: 0
Case #5: 0
Case #6: 1
Case #7: 0
Case #8: 0
Case #9: 0
Case #10: 0
Case #11: 0
Case #12: 4
Case #13: 5
Case #14: 564
Case #15: 0
Case #16: 0
Case #17: 0
Case #18: 0
Case #19: 0
Case #20: 0
Case #21: 0
Case #22: 0
Case #23: 0
Case #24: 844
Case #25: 0
Case...

result:

ok 100 lines

Subtask #2:

score: 22
Accepted

Test #2:

score: 22
Accepted
time: 622ms
memory: 25036kb

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:

Case #1: 6
Case #2: 0
Case #3: 0
Case #4: 2
Case #5: 0
Case #6: 0
Case #7: 0
Case #8: 0
Case #9: 0
Case #10: 0
Case #11: 0
Case #12: 0
Case #13: 0
Case #14: 0
Case #15: 0
Case #16: 4333
Case #17: 0
Case #18: 0
Case #19: 123
Case #20: 0
Case #21: 0
Case #22: 0
Case #23: 0
Case #24: 0
Case #25: 0
Case...

result:

ok 100 lines

Extra Test:

score: 0
Extra Test Passed