QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#702367#6531. Base Station Constructionlibantian#WA 45ms9156kbC++231.1kb2024-11-02 15:51:162024-11-02 15:51:17

Judging History

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

  • [2024-11-02 15:51:17]
  • 评测
  • 测评结果:WA
  • 用时:45ms
  • 内存:9156kb
  • [2024-11-02 15:51:16]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define fi first
#define se second
#define all(_a) _a.begin(), _a.end()
#define rep(i,p,q) for (int i=(p);i<=(q);i++)
#define pre(i,p,q) for (int i=(p);i>=(q);i--)
const int N=5e5+5; int n,a[N],p[N],f[N];
void solve(){
    int m,l,r; queue<int>q;
    cin>>n;
    rep(i,1,n) cin>>a[i];
    n++; a[n]=0;
    rep(i,1,n) f[i]=1e18,p[i]=0;
    cin>>m;
    rep(i,1,m) cin>>l>>r,p[r]=max(p[r],l);
    rep(i,1,n) p[i]=max(p[i],p[i-1]);
    q.push(0);
    rep(i,1,n) {
        for (;q.size()&&q.front()<p[i-1];) q.pop();
        f[i]=f[q.front()]+a[i];
        for (;q.size()&&(q.front()<p[i]||f[q.front()]>f[i]);) q.pop();
        q.push(i);
        //cout<<"i:"<<i<<" top:"<<q.front()<<" fi:"<<f[i]<<"\n";
    }
    cout<<f[n]<<"\n";
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr), cout.tie(nullptr);
    cout << setiosflags(ios::fixed) << setprecision(15);
    int T;
    T=1;
    cin>>T;
    while(T--)solve();
    return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 7632kb

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: 45ms
memory: 9156kb

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
48
4
126
303
141
42
170
159
139
153
194
136
89
230
93
287
89
126
130
148
46
1
193
194
93
239
303
236
150
177
57
46
18
24
66
83
160
108
62
35
122
156
81
115
158
54
242
126
121
171
86
311
244
262
87
302
81
87
173
30
129
75
102
90
179
81
224
142
154
77
111
194
247
211
53
112
17
213
101
308
137
177
...

result:

wrong answer 7th numbers differ - expected: '23', found: '42'