Submission #4353262


Source Code Expand

#include<stdio.h>
#include<stdlib.h>
int asc(const void *a, const void *b)
{
    return *(int *)a - *(int *)b;
}
int main()
{
    int n;
    scanf("%d", &n);
    int i;
    int v[100005];
    for (i = 0; i < n; i++)
        scanf("%d", &v[i]);
    int o[100005], e[100005];
    for (i = 0; i < n; i++)
        if (i % 2 == 0)
            e[i / 2] = v[i];
        else
            o[i / 2] = v[i];
    int m = n / 2;
    qsort(e, m, sizeof(int), asc);
    qsort(o, m, sizeof(int), asc);
    e[m] = o[m] = -1;
    int e1, ne1, o1, no1;
    ne1 = no1 = 0;
    int x = 1;
    for (i = 1; i <= m; i++)
        if (e[i] == e[i - 1])
            x++;
        else
        {
            if (x > ne1)
            {
                ne1 = x;
                e1 = e[i - 1];
            }
            x = 1;
        }
    x = 1;
    for (i = 1; i <= m; i++)
        if (o[i] == o[i - 1])
            x++;
        else
        {
            if (x > no1)
            {
                no1 = x;
            o1 = o[i - 1];
            }
            x = 1;
        }
    if (e1 != o1)
    {
        printf("%d\n", n - ne1 - no1);
        return 0;
    }
    int no2, ne2;
    no2 = ne2 = 0;
    if (e[0] == e1)
        x = 0;
    else
        x = 1;
    for (i = 1; i <= m; i++)
        if (e[i] == e[i - 1] && e[i] != e1)
            x++;
        else
        {
            if (x > ne2)
                ne2 = x;
            if (e[i] == e1)
                x = 0;
            else
                x = 1;
        }
    if (o[0] == o1)
        x = 0;
    else
        x = 1;
    for (i = 1; i <= m; i++)
        if (o[i] == o[i - 1] && o[i] != o1)
            x++;
        else
        {
            if (x > no2)
                no2 = x;
            if (o[i] == o1)
                x = 0;
            else
                x = 1;
        }
    if (no2 < ne2)
        ne1 = ne2;
    else
        no1 = no2;
    printf("%d\n", n - no1 - ne1);
    return 0;
}

Submission Info

Submission Time
Task C - /\/\/\/
User pengin
Language C (GCC 5.4.1)
Score 300
Code Size 2032 Byte
Status AC
Exec Time 22 ms
Memory 1208 KB

Compile Error

./Main.c: In function ‘main’:
./Main.c:10:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &n);
     ^
./Main.c:14:9: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
         scanf("%d", &v[i]);
         ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 20
Set Name Test Cases
Sample sample1_3132.txt, sample2_iw.txt, sample3_1111.txt
All ababa_0.txt, ababa_1.txt, eq_0.txt, eq_1.txt, rnd_17.txt, sample1_3132.txt, sample2_iw.txt, sample3_1111.txt, top2_0.txt, top2_1.txt, top2_2.txt, top2_3.txt, top2modoki_0.txt, top2modoki_1.txt, top2modoki_2.txt, top2modoki_3.txt, vary_1.txt, vary_2.txt, vary_3.txt, zoro_0.txt
Case Name Status Exec Time Memory
ababa_0.txt AC 18 ms 1148 KB
ababa_1.txt AC 20 ms 1176 KB
eq_0.txt AC 17 ms 1148 KB
eq_1.txt AC 17 ms 1148 KB
rnd_17.txt AC 17 ms 1148 KB
sample1_3132.txt AC 1 ms 128 KB
sample2_iw.txt AC 1 ms 128 KB
sample3_1111.txt AC 1 ms 128 KB
top2_0.txt AC 20 ms 1208 KB
top2_1.txt AC 20 ms 1208 KB
top2_2.txt AC 20 ms 1208 KB
top2_3.txt AC 20 ms 1208 KB
top2modoki_0.txt AC 20 ms 1208 KB
top2modoki_1.txt AC 20 ms 1208 KB
top2modoki_2.txt AC 19 ms 1208 KB
top2modoki_3.txt AC 19 ms 1208 KB
vary_1.txt AC 22 ms 1208 KB
vary_2.txt AC 22 ms 1208 KB
vary_3.txt AC 21 ms 1208 KB
zoro_0.txt AC 1 ms 128 KB