QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#391657 | #3791. Interesting Calculator | wanyurukong | 0 | 0ms | 0kb | C++17 | 1.8kb | 2024-04-16 17:57:50 | 2024-04-16 17:57:51 |
answer
#include<iostream>
#include<string.h>
#include<stdio.h>
#include<map>
#include<vector>
#include<queue>
#include<stack>
#include<math.h>
#include<set>
#include<bitset>
#include<deque>
#include<unordered_map>
#include<algorithm>
#define int long long
using namespace std;
typedef pair<int,int>PII;
const int N=1e5+10,M=5e2+10;
int w[35];
int dp[N],res[N],dpp[N],re[N];
signed main(){
ios::sync_with_stdio(false);
cin.tie();
cout.tie();
int n,m;
int oo=0;
while(cin>>n>>m){
for(int i=1;i<=30;i++){
cin>>w[i];
}
for(int i=n;i<=m;i++){
dp[i]=0x3f3f3f3f3f3f3f3f;
res[i]=0x3f3f3f3f3f3f3f3f;
re[i]=0x3f3f3f3f3f3f3f3f;
dpp[i]=0x3f3f3f3f3f3f3f3f;
}
dp[n]=0;
res[n]=0;
for(int i=n;i<=m;i++){
for(int j=1;j<=30;j++){
int num=i;
if(j<=10){
num*=10;
num+=((j-1)%10);
}
else if(j>20){
num*=((j-1)%10);
}
else num+=((j-1)%10);
if(dp[i]+w[j]<=dp[num]){
if(dp[i]+w[j]==dp[num]) res[num]=min(res[num],res[i]+1);
else res[num]=res[i]+1;
dp[num]=min(dp[num],dp[i]+w[j]);
// if(num==128) cout<<res[128]<<" "<<i<<" "<<j<<"!!!\n";
}
}
// cout<<res[m]<<"!!!\n";
}
for(int i=0;i<=m;i++){
for(int j=1;j<=30;j++){
int num=i;
if(j<=10){
num*=10;
num+=((j-1)%10);
}
else if(j>20){
num*=((j-1)%10);
}
else num+=((j-1)%10);
if(dpp[i]+w[j]<=dpp[num]){
if(dpp[i]+w[j]==dpp[num]) re[num]=min(re[num],re[i]+1);
else re[num]=re[i]+1;
dpp[num]=min(dpp[num],dpp[i]+w[j]);
// if(num==128) cout<<res[128]<<" "<<i<<" "<<j<<"!!!\n";
}
}
// cout<<res[m]<<"!!!\n";
}
if(dpp[m]<dp[m]){
cout<<"Case "<<++oo<<": "<<dpp[m]<<" "<<re[m]+1<<endl;
}
else if(dpp[m]==dp[m]){
int mi=min(re[m]+1,res[m]);
cout<<"Case "<<++oo<<": "<<dp[m]<<" "<<mi<<endl;
}
else cout<<"Case "<<++oo<<": "<<dp[m]<<" "<<res[m]<<endl;
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Runtime Error
input:
12 256 100 100 100 1 100 100 100 100 100 100 6 5 4 3 2 1 2 3 4 5 100 100 10 100 100 100 100 100 100 100 12 256 100 100 100 1 100 100 100 100 100 100 100 100 100 100 100 1 100 100 100 100 100 100 10 100 100 100 100 100 100 100 1 100000 100000 100000 100000 100000 100000 100000 100000 100000 100000 10...
output:
Case 1: 7 6 Case 2: 12 3