Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int l,n,m[101],a;
- int pr1[101][101];
- int h[101][101],mi[101][101],s[101][101];
- int pr2[101][101];
- int wh[101];
- int re[101];
- int mgc;
- void rek(int i,int time,int gemcost)
- {
- //cout<<i<<' '<<time<<' '<<gemcost<<endl;
- if (time>l) return;
- if (i==n)
- {
- if (gemcost<mgc)
- {
- for (int j=0;j<n;++j) re[j]=wh[j];
- mgc=gemcost;
- }
- }
- else
- {
- for (int j=0;j<m[i];++j)
- {
- wh[i]=j;
- rek(i+1,time+pr1[i][j],gemcost+pr2[i][j]);
- if (i==0)
- {
- cout<<"Step "<<j<<" complete."<<endl;
- }
- if (i==1)
- {
- cout<<"Step "<<i<<j<<" complete."<<endl;
- }
- if (i==2)
- {
- cout<<"Step "<<i<<j<<" complete."<<endl;
- }
- }
- }
- }
- int main()
- {
- std::ios_base::sync_with_stdio(false);
- ifstream fin("progressive.txt");
- ofstream fout("progressive.out");
- fin>>l>>a;
- fin>>n;
- l*=1440;
- l+=a*60;
- for (int i=0;i<n;++i)
- {
- fin>>m[i];
- for (int j=0;j<m[i];++j)
- {
- fin>>h[i][j]>>mi[i][j]>>s[i][j]>>pr2[i][j];
- mi[i][j]+=s[i][j]/60;
- s[i][j]%=60;
- h[i][j]+=mi[i][j]/24;
- mi[i][j]%=24;
- pr1[i][j]=h[i][j]*1440+mi[i][j]*60+s[i][j];
- }
- }
- mgc=10101;
- rek(0,0,0);
- for (int i=0;i<n;++i)
- {
- fout<<"On quest "<<i+1<<", use "<<pr2[i][re[i]]<<" gems at "<<h[i][re[i]]<<" days, "<<mi[i][re[i]]<<" hours and "<<s[i][re[i]]<<" minutes."<<endl;
- }
- fout<<"Total gem cost: "<<mgc<<" gems."<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement