Submission #156369

#TimeUsernameProblemLanguageResultExecution timeMemory
156369brcodeJourney (NOI18_journey)C++14
100 / 100
245 ms43172 KiB
#include <iostream> #include <vector> using namespace std; const int MAXN = 10010; long long dp[MAXN][500]; vector<pair<int,int>> v1[MAXN]; int main(){ int n,m,h; cin>>n>>m>>h; for(int i=1;i<n;i++){ for(int j=1;j<=h;j++){ int x,y; cin>>x>>y; if(x+1<=i){ continue; } v1[x+1].push_back(make_pair(i,y)); if(i==1){ dp[x+1][y]++; } } } for(int i=2;i<=n;i++){ for(int k=0;k<=m;k++){ if(k){ dp[i][k] += dp[i][k-1]; } for(auto x:v1[i]){ if(k-x.second>=0 && x.first!=1){ dp[i][k]+=dp[x.first][k-x.second]; dp[i][k] = min(dp[i][k],(long long)500000001); } } } } for(int i=0;i<m;i++){ cout<<dp[n][i]<<" "; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...