10973 2024. 04. 24 17:59:17 Kristóf Zebra (75 pont) cpp17 Hibás válasz 0/75 3ms 4000 KiB
#include <iostream>
#include <vector>
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin>>n;
    int old[n];
    int ido[n];
    for(int i=0;i<n;i++)
        {
        cin>>old[i];

        }
    for(int i=0;i<n;i++)
        {
        cin>>ido[i];
        }
    vector<int>egy;
    vector<int>nulla;
    vector<int>vala1;
    vector<int>vala0;
    int ans=0;
    for(int i=0;i<n;i++)
        {
        if(old[i]==1)
            {
            egy.push_back(ido[i]);
            }
        else
            {
            nulla.push_back(ido[i]);
            }
        }
        int idoseged;
        int idoseged2;
        if(nulla[0]<egy[0])
            {
            idoseged=nulla[0];
            idoseged2=nulla[0];
            }
        else
            {
            idoseged=egy[0];
            idoseged2=egy[0];
            }
        vector<int>::iterator it;
        sort(nulla.begin(),nulla.end());
        sort(egy.begin(),egy.end());
        for(int i=0;i<n;i++)
            {
            if(idoseged!=idoseged2)
                {
                ans+=vala1.size();
                ans+=vala0.size();

                idoseged2=idoseged;
                ans--;
                //cout<<ans<<" "<<"answer"<<vala0.size()<<" "<<vala1.size()<<endl;
                if(egy.size()<1 || nulla.size()<1)
                    {
                    //cout<<"in&out"<<endl;
                    if(nulla.size()<1)
                {
                for(int i=0;i<egy.size();i++)
                    {
                    vala1.push_back(egy[i]);
                    idoseged2=egy[i];
                    if(idoseged2!=idoseged)
                        {

                        ans+=vala0.size();
                        ans+=vala1.size();
                        idoseged=idoseged2;
                        ans--;
                        }

                    }

                break;
                }
            if(egy.size()<1)
                {
                for(int i=0;i<nulla.size();i++)
                    {
                    vala0.push_back(egy[i]);
                    idoseged2=nulla[i];
                    if(idoseged2!=idoseged)
                        {
                        ans+=vala0.size();
                        ans+=vala1.size();
                        idoseged=idoseged2;
                        ans--;
                        }

                    }


                break;
                }
                    }
                //cout<<"cleared"<<endl;
                if(vala1.size()>0 && vala0.size()>0){
                vala0.clear();
                vala1.clear();
                }
                }
                //cout<<idoseged2<<" "<<idoseged<<endl;


                if(egy[0]<nulla[0])
                {
                vala1.push_back(egy[0]);
                idoseged=egy[0];
                it=egy.begin();
                egy.erase(it);
                }
            else
                {
                vala0.push_back(nulla[0]);
                idoseged=nulla[0];
                it=nulla.begin();
                nulla.erase(it);

                }
            }



            cout<<ans<<endl;

    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 0/75
1 Elfogadva 0/0 3ms 1688 KiB
2 Hibás válasz 0/0 3ms 1932 KiB
3 Hibás válasz 0/5 3ms 2080 KiB
4 Hibás válasz 0/5 3ms 2328 KiB
5 Hibás válasz 0/5 3ms 2544 KiB
6 Hibás válasz 0/5 3ms 2724 KiB
7 Hibás válasz 0/5 3ms 2720 KiB
8 Hibás válasz 0/5 3ms 2856 KiB
9 Hibás válasz 0/5 3ms 3036 KiB
10 Hibás válasz 0/5 3ms 3248 KiB
11 Hibás válasz 0/5 3ms 3336 KiB
12 Hibás válasz 0/5 3ms 3460 KiB
13 Hibás válasz 0/5 3ms 3672 KiB
14 Hibás válasz 0/5 3ms 3756 KiB
15 Hibás válasz 0/5 3ms 3756 KiB
16 Hibás válasz 0/5 3ms 3784 KiB
17 Hibás válasz 0/5 3ms 4000 KiB