QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#732871 | #5983. Pretty Good Proportion | DengDuck | 0 | 1184ms | 23428kb | C++14 | 876b | 2024-11-10 16:14:08 | 2024-11-10 16:14:09 |
Judging History
answer
#include<bits/stdc++.h>
#define LF long double
#define pLL pair<LF,int>
#define Fi first
#define Se second
using namespace std;
const int N=5e5+5;
const LF E=1e-14;
LF P,Ans;
struct Node{int X;LF Y;}B[N];
int n,A[N],S[N],Pl;
inline LF Cal(Node A,Node B){return (B.Y-A.Y)/(B.X-A.X);}
inline void Upd(int x,LF K)
{
if(K<Ans-E||fabs(Ans-K)<=E&&x<Pl)Pl=x,Ans=K;
}
inline void DP()
{
for(int i=1;i<=n;i++)
{
S[i]=S[i-1]+A[i];
B[i]={i,P*i-S[i]};
}
B[0]={0,0};
sort(B,B+n+1,[](Node X,Node Y){return X.Y<Y.Y;});
for(int i=0;i<n;i++)
{
if(B[i].X<B[i+1].X)Upd(B[i].X+1,Cal(B[i],B[i+1]));
}
}
inline void Work()
{
Ans=1e9,Pl=0;
scanf("%d%Lf",&n,&P);
for(int i=1;i<=n;i++)scanf("%1d",&A[i]);
DP();
for(int i=1;i<=n;i++)A[i]^=1;
P=1-P;
DP();
printf("%d\n",Pl);
}
int main()
{
int T;scanf("%d",&T);
while(T--)Work();
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 5ms
memory: 8060kb
input:
100 10 0.827672 0010101011 4 0.932623 0100 1000 0.834002 011001110010111110000110101100010010100101101110110111100010101101111100110001011000110100010100011011000001100001010110111101111010110110000110011000111000011110101100100111111001111011011100111001011101010100111011100011110011100011110010001...
output:
7 2 11 1 1 2 1 1 1 1 1 5 6 565 1 1 1 1 1 1 1 1 1 845 1 1 2 156 1 1 1 1 1 1 394 2 174 1 3 1 131 4 1 841 2 6 1 1 75 1 2 1 1 1 1 1 2 1 2 1 1 1 9 1 1 839 3 3 1 1 1 613 1 6 1 1 1 1 1 1 2 1 321 1 1 7 80 1 1 1 1 1 2 1 2 159 1 1 4 1
result:
wrong answer 1st lines differ - expected: 'Case #1: 6', found: '7'
Subtask #2:
score: 0
Wrong Answer
Test #2:
score: 0
Wrong Answer
time: 1184ms
memory: 23428kb
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:
7 1 1 3 1 1 1 1 1 1 1 1 1 1 1 4334 1 1 124 1 1 1 1 1 1 1 1 4 1 682 1 1 3 1 1 1 1 1 2 3 1 289 3 2 2 1 1 1 1 1 1 1 1 2 1 2 1 6 6 1 2 2 1 3 2 1 7 4 1 501 2 1 1 2 1 2 189 4 1 7 499839 1 1 6 1 1 1 499841 1 1 9 5 1 2 1 1 1 93 1 1
result:
wrong answer 1st lines differ - expected: 'Case #1: 6', found: '7'