QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#795664#6531. Base Station ConstructionRUOHUIWA 42ms9976kbC++201.1kb2024-11-30 22:53:342024-11-30 22:53:34

Judging History

你现在查看的是最新测评结果

  • [2024-11-30 22:53:34]
  • 评测
  • 测评结果:WA
  • 用时:42ms
  • 内存:9976kb
  • [2024-11-30 22:53:34]
  • 提交

answer

#include "bits/stdc++.h"
#define int long long
using namespace std;
const int N = 2e6 + 10;
int n, m, k;
int a[N], b[N], dp[N], f[N], num, ans;


void solve()
{
    cin >> n;

    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
        b[i] = 0;
    }
    cin >> m;
    int re=0;
    for (int i = 1; i <= m; i++)
    {

        int x, y;
        cin >> x >> y;
        b[y] = max(b[y], x);
        re=max(re,y);
    }
    int h = 1, d = 1;
    f[1] = 0;
    for (int i = 1; i <= n; i++)
    {
        dp[i] = dp[f[h]] + a[i];
        while (h <= d && dp[f[d]] > dp[i])
            d--;
        f[++d] = i;
        //cout << i << " " << f[h] << " " << dp[i] << " " << b[i] << "\n";
        while (h <= d && f[h] < b[i])
            h++;
        
        
       //cout<<dp[i]<<" ";
    }
    cout << dp[re] << "\n";
}
signed main()
{

    ios::sync_with_stdio(false);
    cin.tie(0);

    // freopen("in.txt", "r", stdin);
    // freopen("out.txt", "w", stdout);

    int t = 1;
    cin >> t;
    while (t--)
    {
        solve();
    }
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 7748kb

input:

2
5
3 2 4 1 100
3
1 3
2 4
5 5
5
7 3 4 2 2
3
1 4
2 3
4 5

output:

102
5

result:

ok 2 number(s): "102 5"

Test #2:

score: -100
Wrong Answer
time: 42ms
memory: 9976kb

input:

6201
12
88 78 46 95 84 98 55 3 68 42 6 18
19
6 9
10 11
12 12
8 11
8 12
2 3
2 3
1 5
9 9
7 8
6 11
2 4
12 12
2 4
2 9
7 10
8 8
1 7
6 11
5
76 27 48 66 61
2
1 4
3 5
8
64 81 20 6 86 9 4 55
1
7 7
9
1 43 18 81 11 22 9 61 83
14
5 6
2 6
5 8
1 4
9 9
9 9
7 7
2 5
8 9
5 6
4 8
5 8
9 9
6 6
10
66 41 84 7 80 31 22 96 ...

output:

141
88
4
126
303
141
43
170
159
139
222
194
217
147
230
93
287
89
124
130
148
74
11
193
228
93
239
303
236
150
177
57
71
65
90
90
83
160
108
62
35
122
156
81
115
229
110
242
126
28
210
86
311
244
262
162
302
81
93
238
30
129
75
109
96
179
81
224
142
172
143
111
215
247
211
53
120
17
213
118
316
137
...

result:

wrong answer 2nd numbers differ - expected: '48', found: '88'