Submission #18066012


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
int n,a[100005],b[100005],s[100005],tree[200015];
void add(int x,int y){x+=100000;for(int i=x;i<=200005;i+=(i&(-i)))tree[i]+=y;}
int ask(int x){x+=100000;int res=0;for(int i=x;i;i-=(i&(-i)))res+=tree[i];return res;}
bool check(int x)//median<=x
{
    memset(tree,0,sizeof(tree));
    add(1,1);
    int nows=0;
    long long res=0;
    for(int i=1;i<=n;i++)
    {
        if(a[i]<=x)nows++;
        res+=ask(2*nows-i);
        add(2*nows-i+1,1);
    }
    return res>=1ll*n*(n+1)/4+1;
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)scanf("%d",&a[i]),b[i]=a[i];
    sort(b+1,b+n+1);
    int t=unique(b+1,b+n+1)-(b+1);
    int l=1,r=t;
    while(l<r)
    {
        int mid=(l+r)>>1;
        if(check(b[mid]))r=mid;
        else l=mid+1;
    }
    printf("%d",b[l]);
    return 0;
}

Submission Info

Submission Time
Task D - Median of Medians
User AzusaCat
Language C++ (GCC 9.2.1)
Score 700
Code Size 870 Byte
Status AC
Exec Time 67 ms
Memory 5328 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:22:10: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   22 |     scanf("%d",&n);
      |     ~~~~~^~~~~~~~~
./Main.cpp:23:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   23 |     for(int i=1;i<=n;i++)scanf("%d",&a[i]),b[i]=a[i];
      |                          ~~~~~^~~~~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 3
AC × 19
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 1_11.txt, 1_12.txt, 1_13.txt, 1_14.txt, 1_15.txt
Case Name Status Exec Time Memory
0_00.txt AC 6 ms 4344 KiB
0_01.txt AC 4 ms 3616 KiB
0_02.txt AC 4 ms 4484 KiB
1_00.txt AC 2 ms 3784 KiB
1_01.txt AC 3 ms 3560 KiB
1_02.txt AC 15 ms 4460 KiB
1_03.txt AC 21 ms 4380 KiB
1_04.txt AC 50 ms 5240 KiB
1_05.txt AC 48 ms 5132 KiB
1_06.txt AC 55 ms 5244 KiB
1_07.txt AC 54 ms 5248 KiB
1_08.txt AC 64 ms 5164 KiB
1_09.txt AC 63 ms 5252 KiB
1_10.txt AC 65 ms 5160 KiB
1_11.txt AC 65 ms 5328 KiB
1_12.txt AC 61 ms 5324 KiB
1_13.txt AC 65 ms 5248 KiB
1_14.txt AC 67 ms 5248 KiB
1_15.txt AC 65 ms 5232 KiB