QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#866323 | #9916. Defeat the Enemies | piggy123 | RE | 0ms | 9836kb | C++17 | 4.1kb | 2025-01-22 14:30:52 | 2025-01-22 14:30:52 |
Judging History
answer
#include <bits/stdc++.h>
#define ll long long
using namespace std;
struct pl {
ll a,b;
} p[500005];
ll c[105];
pair<ll,ll> dp[30105][105];
ll gx[105][30105],MX[30105];
const ll mod=998244353;
inline void upd(pair<ll,ll> &a,ll b,ll c) {
if (a.first>b) {
a.first=b;
a.second=c;
} else if (a.first==b) {
a.second+=c;
a.second%=mod;
}
}
int main() {
cin.tie(0);cout.tie(0);
ios::sync_with_stdio(false);
ll t;
cin >> t;
while (t--) {
ll n,m;
cin >> n >> m;
for (ll i=1; i<=n; i++) {
cin >> p[i].a;
}
for (ll i=1; i<=n; i++) {
cin >> p[i].b;
}
ll k;
cin >> k;
for (ll i=1; i<=k; i++) {
cin >> c[i];
}
ll mx=0;
for (ll i=1; i<=n; i++) {
mx=max(mx,p[i].a+p[i].b);
}
for (ll i=0; i<=mx+k*k; i++){
for (ll j=0; j<=k; j++)
dp[i][j]= {(ll)1e9,0};
}
for (ll i=1;i<=m;i++)MX[i]=0;
for (ll i=1;i<=n;i++)MX[p[i].b]=max(MX[p[i].b],p[i].a);
for (ll a=1; a<=k; a++) {
for (ll i=0; i<=mx+k*k; i++) {
gx[a][i]=0;
for (ll j=i+1;j<=min(m,i+a);j++){
gx[a][i]=max(gx[a][i],MX[j]+i+a-mx);
}
assert(gx[a][i]<=k);
}
}
dp[0][0]={0,1};
for (ll i=0; i<=mx+k*k; i++) {
for (ll j=0; j<=k; j++) {
for (ll a=1; a<=k&&i+a<=mx+k*k; a++) {
// sm>=p[i].a+i+a
// p[i].b in [i+1,i+a]
upd(dp[i+a][max(gx[a][i],j)],dp[i][j].first+c[a],dp[i][j].second);
}
}
}
pair<ll,ll> zw={(ll)1e9,0};
for (ll i=mx;i<=mx+k*k;i++){
for (ll j=0;j<=k;j++){
if (i>=mx+j)
upd(zw,dp[i][j].first,dp[i][j].second);
}
}
cout<< zw.first<<" "<< zw.second<< "\n";
}
return 0;
}
/*
4
5 5
3 5 2 1 2
3 1 3 2 3
3
2 3 4
3 2
2 2 2
2 2 2
3
2 3 3
7 6
5 3 4 6 6 3 4
4 6 4 2 3 5 5
4
2 4 6 7
10 100
38 49 79 66 49 89 21 55 13 23
67 56 26 39 56 16 84 50 92 82
11
6 6 7 8 9 9 9 9 9 9 9
■■■■■ ■■ ■■■ ■■■ ■ ■ ■ ■■■■ ■■■■
■ ■■ ■■ ■ ■■ ■ ■■ ■ ■ ■■ ■ ■■ ■■ ■
■ ■ ■■ ■ ■ ■ ■ ■ ■ ■■■ ■■ ■■ ■ ■■
■ ■ ■■ ■ ■ ■ ■ ■ ■ ■■ ■ ■■ ■■
■ ■ ■■ ■ ■ ■■ ■■ ■■ ■
■ ■■ ■■ ■ ■■■ ■ ■■■ ■■ ■■ ■■ ■■■
■■■■■ ■■ ■ ■ ■ ■ ■■ ■■ ■■ ■■
■ ■■ ■ ■ ■ ■ ■■ ■■ ■■ ■
■ ■■ ■ ■ ■ ■ ■■ ■■ ■ ■ ■■
■ ■■ ■■ ■■ ■■ ■■ ■■ ■■ ■ ■■ ■■
■ ■■ ■■■■ ■■■■ ■■ ■■ ■■■■■■ ■■■■
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 9836kb
input:
4 5 5 3 5 2 1 2 3 1 3 2 3 3 2 3 4 3 2 2 2 2 2 2 2 3 2 3 3 7 6 5 3 4 6 6 3 4 4 6 4 2 3 5 5 4 2 4 6 7 10 100 38 49 79 66 49 89 21 55 13 23 67 56 26 39 56 16 84 50 92 82 11 6 6 7 8 9 9 9 9 9 9 9
output:
9 1 6 4 18 18 99 44387
result:
ok 8 numbers
Test #2:
score: -100
Runtime Error
input:
1000 5 3 1 1 3 1 2 3 2 1 1 2 1 5 5 3 3 3 2 2 1 1 1 3 1 1 3 3 1 3 5 5 4 3 5 1 4 5 5 2 5 5 2 1 5 5 5 5 5 5 5 4 2 1 2 4 1 2 1 1 5 3 2 1 2 1 1 1 3 2 1 1 1 5 2 1 1 1 1 1 3 2 2 1 5 5 2 3 5 2 2 5 2 4 3 1 2 3 3 5 1 1 1 1 1 1 1 1 1 1 1 3 5 4 4 5 4 1 4 4 4 2 4 3 1 3 3 1 2 1 5 2 2 3 4 2 4 1 5 4 5 1 4 2 5 1 5 1...