QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#683477#9528. New Energy VehiclewyssssTL 0ms3624kbC++171.4kb2024-10-27 21:21:302024-10-27 21:21:38

Judging History

This is the latest submission verdict.

  • [2024-10-27 21:21:38]
  • Judged
  • Verdict: TL
  • Time: 0ms
  • Memory: 3624kb
  • [2024-10-27 21:21:30]
  • Submitted

answer

#include <iostream>
#include <algorithm>
#include <set>
#include <queue>
#include <vector>
#include <cstring>
#include <numeric>
#include <cmath>
#include <list>
#include <stack>
#include <map>
#include <unordered_map>
#include <string>
#define int long long
#define ll long long
#define pii pair<int,int>
#define piii pair<pii,int>
using namespace std;
const int inf = (1ll << 60) - 1 + (1ll << 60);
const int maxn = 2e5 + 5;
const int maxm = 2e5 + 5;
int dx[] = { 0,0,1,-1 }, dy[] = { 1,-1,0,0 };



void solve() {
    int n, m;
    cin >> n >> m;
    int sum = 0;
    vector<int> a(n + 1);
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        sum += a[i];
    }
    int x = 0;
    vector<int> p(m + 1);
    for (int i = 1; i <= m; i++) {
        int t;
        cin >> p[i] >> t;
        int need = p[i] - p[i - 1];
        if (sum < need) {
            cout << p[i - 1] + sum << "\n";
            return;
        }
        else {
            sum -= need;
            x += need;
        }
        if (x >= a[t]) {
            x -= a[t];
            sum += a[t];
        }
        else {
            sum += x;
            x = 0;
        }
    }
    cout << p[m] + sum << "\n";
}

signed main() {
    ios::sync_with_stdio(0), cin.tie(0);
    int T = 1;
    cin >> T;
    while (T--) {
        solve();
    }
    return 0;
}

详细

Test #1:

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

input:

2
3 1
3 3 3
8 1
2 2
5 2
1 2
2 1

output:

12
9

result:

ok 2 lines

Test #2:

score: -100
Time Limit Exceeded

input:

6
3 2
2 2 2
6 1
7 1
2 2
3 3
2 1
6 2
2 3
2 2
5 1
7 2
9 1
2 2
3 3
2 1
6 2
1 1
999999999
1000000000 1
1 1
1000000000
1000000000 1

output:


result: