Advertisement
Josif_tepe

Untitled

Nov 24th, 2021
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. int dp[100005];
  6. int a;
  7. int b;
  8. int n;
  9. int k;
  10. int rec(int dokumenti=n){
  11.     if(dokumenti==k){
  12.         return 0;
  13.     }
  14.  
  15.     if(dp[dokumenti]!=-1){
  16.         return(dp[dokumenti]);
  17.     }
  18.  
  19.     int result=2e9;
  20.  
  21.     if(dokumenti-1>=k){
  22.     result=min(result, rec(dokumenti-1)+a);
  23.     }
  24.  
  25.     if(dokumenti/2>=k){
  26.     result=min(result, rec(dokumenti/2)+b);
  27.     }
  28.     dp[dokumenti] = result;
  29.     return(result);
  30. }
  31. int main()
  32. {
  33.  
  34.  
  35. cin>>n>>k;
  36. int g;
  37. cin>>g;
  38. string z;
  39. ////broj na kompanii
  40. string c[g];
  41. int x[g];
  42. ////prva
  43. int y[g];
  44. ////vtora
  45. int result1=2e9;
  46. for(int i=0; i<g; i++){
  47.     cin>>c[i]>>x[i]>>y[i];
  48.  
  49.     for(int j=0; j<100005; j++){
  50.     dp[j]=-1;
  51.     }
  52.  
  53.     a=x[i];
  54.     b=y[i];
  55.     if(result1>rec(n)){
  56.         result1=rec(n);
  57.         z=c[i];
  58.     }
  59. }
  60.  
  61.  
  62. cout<<z<<" "<<result1<<endl;
  63.  
  64.  
  65.     return 0;
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement