220152026-01-14 12:44:43csdavidMI bróker (50 pont)cpp17Időlimit túllépés 9/501.103s28724 KiB
#include <iostream>
#include <vector>
using namespace std;

vector<int> e[501], v[501];
int n, a[10000], x, y, q;

int main()
{
    cin >> n >> q;
    for(int i=1; i<=500; i++){
        e[i].push_back(-1);
        v[i].push_back(-1);
    }
    for(int i=0; i<n; i++){
        cin >> a[i];
        for(int j=1; j<=500; j++){
            if(j>=a[i]){
                v[j].push_back(i);
            }
            if(j<=a[i]){
                e[j].push_back(i);
            }
        }
    }
    while(q--){
        int haszon=0;
        cin >> x >> y;
        int i=0, j=0; //i- vetele indexe, j - eladas indexe
        bool van=0;
        int maxi=v[x].size(), maxj=e[y].size();
        while(i<maxi&&j<maxj){
            /*cout << "i: " << i << '\n';
            cout << "j: " << j << '\n';
            cout << "v[x][i]: " << v[x][i] << '\n';
            cout << "e[y][j]: " << e[y][j] << '\n';*/
            if(van){
                do{
                    j++;
                }while (j<maxj&&e[y][j]<=v[x][i]);
                if(j<maxj){
                    //cout << "eladott " << a[e[y][j]] << "-ert\n";
                    haszon+=a[e[y][j]];
                    van=0;
                }
            }
            else{
                do{
                    i++;
                }while(i<maxi&&v[x][i]<=e[y][j]);
                if(i<maxi){
                    //cout << "vett " << a[v[x][i]] << "-ert\n";
                    haszon-=a[v[x][i]];
                    van=1;
                }
            }
        }
            /*cout << "i: " << i << '\n';
            cout << "j: " << j << '\n';
        for(auto& it:v[x]){
            cout << it << ' ';
        }
        cout << '\n';
        for(auto& it:e[y]){
            cout << it << ' ';
        }
        cout << '\n';*/
        cout << haszon << '\n';
    }

    //cout << e[40][2] << '\n';
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base9/50
1Elfogadva0/01ms508 KiB
2Időlimit túllépés0/01.087s24880 KiB
3Elfogadva1/12ms316 KiB
4Elfogadva1/12ms316 KiB
5Elfogadva2/28ms3380 KiB
6Elfogadva2/271ms27344 KiB
7Elfogadva2/259ms27448 KiB
8Elfogadva1/1342ms27956 KiB
9Időlimit túllépés0/11.087s28212 KiB
10Időlimit túllépés0/21.103s28552 KiB
11Időlimit túllépés0/21.077s28368 KiB
12Időlimit túllépés0/21.082s28468 KiB
13Időlimit túllépés0/21.077s28724 KiB
14Időlimit túllépés0/21.101s28468 KiB
15Időlimit túllépés0/31.085s27660 KiB
16Időlimit túllépés0/31.092s27700 KiB
17Időlimit túllépés0/31.085s27700 KiB
18Időlimit túllépés0/31.095s27480 KiB
19Időlimit túllépés0/31.083s27700 KiB
20Időlimit túllépés0/31.09s27792 KiB
21Időlimit túllépés0/31.085s27912 KiB
22Időlimit túllépés0/31.087s27804 KiB
23Időlimit túllépés0/31.085s27844 KiB
24Időlimit túllépés0/31.095s27968 KiB