201622026-01-03 14:40:47szabelrSzínes szobák (50 pont)cpp17Hibás válasz 0/5045ms5316 KiB
// Színes szobák.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include <iostream>
#include <vector>
using namespace std;
int binkeres(vector<int> &a,int x) {
    int bal = 1;
    int jobb = a.size() - 1;
    int mid = (bal + jobb) / 2;
    while (bal <= jobb)
    {
        mid = (bal + jobb) / 2;
        if (mid < x)
        {
            bal = mid + 1;

        }
        else
            jobb = mid - 1;
    }
    return mid;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, c,m;
    cin >> n >> c>>m;
    int emberek = 0;
    vector<vector<int>> color(c+1);
    vector<int> sum(c + 1,0);
    vector<int> maxi(c + 1,0);
    vector<int> mini(c + 1,0);
    for (int i = 1; i <= n; i++)
    {
        int x;
        cin >> x;
        color[x].push_back(i);
    }
    for (int i = 1; i <= m; i++)
    {
        int x, y;
        cin >> x >> y;
        sum[x] += y;
        maxi[x] = max(maxi[x], sum[x]);
        mini[x] = min(mini[x], sum[x]);
    }
    for (int i = 1; i <= c; i++)
    {
        if(!color[i].empty())
        {
            int balhatar=1, jobbhatar=color[i].size()-1;
            if (mini[i] < 0)
                balhatar= binkeres(color[i], abs(mini[i]));
            if (maxi[i] > 0)
                jobbhatar= binkeres(color[i], color[i].size() - maxi[i]);
            emberek = emberek + (color[i].size()  - (jobbhatar - balhatar));
        }
       
    }
    cout << emberek;
}

// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu

// Tips for Getting Started: 
//   1. Use the Solution Explorer window to add/manage files
//   2. Use the Team Explorer window to connect to source control
//   3. Use the Output window to see build output and other messages
//   4. Use the Error List window to view errors
//   5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
//   6. In the future, to open this project again, go to File > Open > Project and select the .sln file
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/039ms4660 KiB
3Hibás válasz0/11ms316 KiB
4Hibás válasz0/11ms316 KiB
5Hibás válasz0/11ms500 KiB
6Hibás válasz0/11ms316 KiB
7Hibás válasz0/11ms316 KiB
8Hibás válasz0/11ms316 KiB
9Hibás válasz0/11ms316 KiB
10Hibás válasz0/12ms316 KiB
11Hibás válasz0/11ms316 KiB
12Hibás válasz0/12ms324 KiB
13Hibás válasz0/14ms564 KiB
14Hibás válasz0/13ms820 KiB
15Hibás válasz0/13ms820 KiB
16Hibás válasz0/14ms844 KiB
17Hibás válasz0/14ms936 KiB
18Hibás válasz0/14ms820 KiB
19Hibás válasz0/124ms1704 KiB
20Hibás válasz0/135ms1612 KiB
21Hibás válasz0/128ms1672 KiB
22Hibás válasz0/129ms1556 KiB
23Hibás válasz0/134ms1600 KiB
24Hibás válasz0/135ms1588 KiB
25Hibás válasz0/135ms1584 KiB
26Hibás válasz0/135ms1568 KiB
27Hibás válasz0/345ms5300 KiB
28Hibás válasz0/343ms5296 KiB
29Hibás válasz0/339ms5316 KiB
30Hibás válasz0/343ms5300 KiB
31Hibás válasz0/343ms5292 KiB
32Hibás válasz0/341ms5296 KiB
33Hibás válasz0/419ms2884 KiB
34Hibás válasz0/428ms2868 KiB