Submission #751840

# Submission time Handle Problem Language Result Execution time Memory
751840 2023-06-01T15:12:32 Z 1075508020060209tc Sequence (APIO23_sequence) C++17
28 / 100
2000 ms 10396 KB
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int lowbit(int x){return x&-x;}

struct BIT{
vector<int>bit;
int MX;
void init(int len){
for(int i=0;i<=len+100;i++){
    bit.push_back(0);
}
MX=len;
}
void upd(int pl,int vl){
while(pl<=MX){
    bit[pl]+=vl;
    pl+=lowbit(pl);
}
}
int qsum(int pl){
int ret=0;
while(pl){
    ret+=bit[pl];
    pl-=lowbit(pl);
}
return ret;
}
int k_th(int k){

    int l=0;int r=MX;
    while(l<r){
        int mi=l+(r-l+1)/2;
        if(qsum(mi)<k){
            l=mi;
        }else{
            r=mi-1;
        }
    }
    return l+1;






int lg=__lg(MX);
int cnt=0;
int nw=0;
for(int i=lg;i>=0;i--){
    if(cnt+bit[nw+(1<<i)]<k){
        nw+=(1<<i);
        cnt+=bit[nw];
    }
}
return nw+1;
}
};


int n;
int ar[500005];
int freq[500005];

int slv(){
   int ans=0;
   BIT num;
   num.init((1<<(__lg(n)+1)));
    for(int l=1;l<=n;l++){
        for(int r=l;r<=n;r++){
            freq[ar[r]]++;
            num.upd(ar[r],1);
            int len=r-l+1;
            ans=max(ans,freq[num.k_th((len+1)/2)]);
            ans=max(ans,freq[num.k_th((len+2)/2)]);
        }
        for(int r=l;r<=n;r++){
            freq[ar[r]]--;
            num.upd(ar[r],-1);
        }
    }
    return ans;
}


int sequence(int N, std::vector<int> A) {
    n=N;
    for(int i=0;i<n;i++){
        ar[i+1]=A[i];
    }
return slv();

  return 0;
}

/*

signed main()
{
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>ar[i];
    }
    cout<<slv();


    return 0;
}

*/

# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 258 ms 360 KB Output is correct
14 Correct 263 ms 356 KB Output is correct
15 Correct 181 ms 348 KB Output is correct
16 Correct 181 ms 348 KB Output is correct
17 Correct 174 ms 348 KB Output is correct
18 Correct 301 ms 360 KB Output is correct
19 Correct 255 ms 360 KB Output is correct
20 Correct 211 ms 352 KB Output is correct
21 Correct 263 ms 460 KB Output is correct
22 Correct 280 ms 356 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Execution timed out 2073 ms 10308 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Execution timed out 2068 ms 10396 KB Time limit exceeded
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 2073 ms 10316 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 258 ms 360 KB Output is correct
14 Correct 263 ms 356 KB Output is correct
15 Correct 181 ms 348 KB Output is correct
16 Correct 181 ms 348 KB Output is correct
17 Correct 174 ms 348 KB Output is correct
18 Correct 301 ms 360 KB Output is correct
19 Correct 255 ms 360 KB Output is correct
20 Correct 211 ms 352 KB Output is correct
21 Correct 263 ms 460 KB Output is correct
22 Correct 280 ms 356 KB Output is correct
23 Execution timed out 2079 ms 2380 KB Time limit exceeded
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 1 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 212 KB Output is correct
7 Correct 1 ms 212 KB Output is correct
8 Correct 1 ms 212 KB Output is correct
9 Correct 1 ms 212 KB Output is correct
10 Correct 1 ms 212 KB Output is correct
11 Correct 1 ms 212 KB Output is correct
12 Correct 1 ms 212 KB Output is correct
13 Correct 258 ms 360 KB Output is correct
14 Correct 263 ms 356 KB Output is correct
15 Correct 181 ms 348 KB Output is correct
16 Correct 181 ms 348 KB Output is correct
17 Correct 174 ms 348 KB Output is correct
18 Correct 301 ms 360 KB Output is correct
19 Correct 255 ms 360 KB Output is correct
20 Correct 211 ms 352 KB Output is correct
21 Correct 263 ms 460 KB Output is correct
22 Correct 280 ms 356 KB Output is correct
23 Execution timed out 2073 ms 10308 KB Time limit exceeded
24 Halted 0 ms 0 KB -