78562024-01-11 13:31:40hackemonKártyajátékcpp17Elfogadva 30/3064ms14160 KiB
#include <bits/stdc++.h>
using namespace std;
//using namespace std::chrono;

#define pii pair<int,int>
#define pb push_back
#define vi vector<int>
#define vb vector<bool>
#define vl vector<ll>
#define vvi vector<vi>
#define vvb vector<vb>
#define vvl vector<vl>
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#define fScan {ios_base::sync_with_stdio(false); cin.tie(NULL);}
#define rep(i, a, b) for(int i = a; i < (b); i++)
#define REP(i, n) for(int i = 0;i <(n); i++)
using ll = long long;
using ld = long double;
ll mod = 1000000007;

const char ny =  '\n';

bool prime(ll a) {
    if (a==1) return 0;
    for (int i=2;i*i<=a;++i)
    {
        if (a%i==0) return 0;
    }
    return 1;
}

ll gcd(ll a,ll b) {
    if (b==0) return a;
    return gcd(b,a%b);
}

ll lcm(ll a,ll b)
{
    return a/gcd(a,b)*b;
}

ll min(int a, ll b) {
    if(a< b) return a;
    else return b;
}



void solve() { 
    // int n, k;
    // cin >> n >> k;
    // vector<long long> f(k);
    // set<long long> elemek;

    // for(int i = 0;i < k;i++ ) {
    //     cin >> f[i];
    //     elemek.insert(f[i]);
    // }

    // int ans = 0; 

    // for(int i = 0;i < k;i++ ) {
    //     if(elemek.find(f[i]) != elemek.end()) {
    //         while(!elemek.empty() & elemek.begin() != elemek.find(f[i])) {
    //             elemek.erase(elemek.begin());
    //         }
    //         ans++;
    //     } else { 
    //         elemek.erase(elemek.find(f[i]));
    //     }
    // }

    // cout << ans << '\n';

    long long n, k;
    cin >> n >> k; 
    vector<long long> f(k);
    set<long long> elemek;

    for(int i = 0;i < k;i++ ) {
        cin >> f[i];
        elemek.insert(f[i]);
    }

    long long ans = 0;

    for(int i = 0;i < k;i++ ) {
        auto pos = elemek.find(f[i]);
        if(pos == elemek.end()) {
            continue;
        } else { 
            if(elemek.begin() == pos) { 
                elemek.erase(elemek.begin());
            } else { 
                int counter = 0;
                while(elemek.begin() != pos) {
                    elemek.erase(elemek.begin());
                    counter++;
                }
                if(counter > 0) ans++;
                elemek.erase(elemek.begin());
            }
        }
    }
    cout << ans << endl;
    }


int main()
{
    fScan

    int t = 1;
    //comment out if necessary
    //cin>> t;


    //auto start = high_resolution_clock::now();
    while(t-- ) {
        solve();
    }
    //auto end = high_resolution_clock::now();
    //auto dur = duration_cast<milliseconds>(end-start);
    //cout<< "runtime: " << dur.count() << " milliseconds" << '\n';
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base30/30
1Elfogadva0/03ms1860 KiB
2Elfogadva0/059ms12848 KiB
3Elfogadva1/13ms2260 KiB
4Elfogadva1/13ms2576 KiB
5Elfogadva1/13ms2732 KiB
6Elfogadva2/23ms2920 KiB
7Elfogadva2/23ms2856 KiB
8Elfogadva2/23ms3232 KiB
9Elfogadva1/134ms10128 KiB
10Elfogadva2/248ms13640 KiB
11Elfogadva3/346ms13796 KiB
12Elfogadva3/348ms13896 KiB
13Elfogadva1/161ms13972 KiB
14Elfogadva2/259ms13968 KiB
15Elfogadva3/354ms14080 KiB
16Elfogadva3/364ms14052 KiB
17Elfogadva3/359ms14160 KiB