QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#684301#9528. New Energy Vehiclekano07WA 0ms3636kbC++141.7kb2024-10-28 12:20:372024-10-28 12:20:39

Judging History

This is the latest submission verdict.

  • [2024-10-28 12:20:39]
  • Judged
  • Verdict: WA
  • Time: 0ms
  • Memory: 3636kb
  • [2024-10-28 12:20:37]
  • Submitted

answer

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;
using db = long double;
class JudTime {
public:
    chrono::time_point<chrono::high_resolution_clock> start, end;
    JudTime() : start(chrono::high_resolution_clock::now()) {}
    ~JudTime() {
        end = chrono::high_resolution_clock::now();
        cerr << fixed << setprecision(6) << chrono::duration<double>(end - start).count()
             << " seconds" << endl;
    }
};
const int N = 1e5 + 5;
ll a[N];
ll last[N];
pll v[N];   // first位置,second充电目标
void solve() {
    int n, m;
    cin >> n >> m;
    ll all = 0;
    for (int i = 1; i <= n; i++) {
        last[i] = 0;
        cin >> a[i];
        all += a[i];
    }
    for (int i = 1; i <= m; i++) cin >> v[i].first >> v[i].second;
    sort(v + 1, v + 1 + m, [](pll x, pll y) {
        if (x.first == y.first) return a[x.second] > a[y.second];
        return x.first < y.first;
    });
    v[0] = {0, 0};
    ll sum = 0;   //欠费数
    for (ll i = 1; i <= m; i++) {
        ll dis = v[i].first - v[i - 1].first;   //路程
        if (sum + dis > all) {
            cout << v[i - 1].first + all - sum << endl;
            return;
        }
        ll get = min(v[i].first - last[v[i].second], a[v[i].second]);
        last[v[i].second] = v[i].first;
        sum += dis;   //欠费数
        sum -= get;
    }
    cout << v[m].first + all - sum << endl;
}

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

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3636kb

input:

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

output:

12
10

result:

wrong answer 2nd lines differ - expected: '9', found: '10'