Submission #955711

#TimeUsernameProblemLanguageResultExecution timeMemory
955711vjudge1Pinball (JOI14_pinball)C++17
11 / 100
208 ms404112 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; using pll = pair<ll, ll>; #define int long long ll dp[205][505][505]; int32_t main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; vector<array<int, 4> > v(n+2); set<int> s; s.insert(1); s.insert(m); for(int i=1; i<=n; i++) { cin >> v[i][0] >> v[i][1] >> v[i][2] >> v[i][3]; s.insert(v[i][0]); s.insert(v[i][1]); s.insert(v[i][2]); } vector<int> comp(s.begin(), s.end()); for(int i=1; i<=n; i++) { v[i][0] = lower_bound(comp.begin(), comp.end(), v[i][0]) - comp.begin(); v[i][1] = lower_bound(comp.begin(), comp.end(), v[i][1]) - comp.begin(); v[i][2] = lower_bound(comp.begin(), comp.end(), v[i][2]) - comp.begin(); } for(int i=0; i<=n+1; i++) for(int j=0; j<=comp.size(); j++) for(int k=0; k<=comp.size(); k++) dp[i][j][k] = 1e18; for(int i=0; i<=comp.size(); i++) dp[n+1][i][i] = 0; for(int i=n+1; i>=1; i--) { for(int j=0; j<comp.size(); j++) { for(int k=j; k<comp.size(); k++) { dp[i-1][j][k] = min(dp[i-1][j][k], dp[i][j][k]); if(j <= v[i-1][2] && v[i-1][2] <= k) dp[i-1][min(j, v[i-1][0])][max(k, v[i-1][1])] = min(dp[i-1][min(j, v[i-1][0])][max(k, v[i-1][1])], dp[i][j][k] + v[i-1][3]); } } } if(dp[1][0][comp.size()-1] == 1e18) cout << -1 << '\n'; else cout << dp[1][0][comp.size()-1] << '\n'; return 0; }

Compilation message (stderr)

pinball.cpp: In function 'int32_t main()':
pinball.cpp:34:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |         for(int j=0; j<=comp.size(); j++)
      |                      ~^~~~~~~~~~~~~
pinball.cpp:35:27: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |             for(int k=0; k<=comp.size(); k++) dp[i][j][k] = 1e18;
      |                          ~^~~~~~~~~~~~~
pinball.cpp:37:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |     for(int i=0; i<=comp.size(); i++) dp[n+1][i][i] = 0;
      |                  ~^~~~~~~~~~~~~
pinball.cpp:40:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |         for(int j=0; j<comp.size(); j++) {
      |                      ~^~~~~~~~~~~~
pinball.cpp:41:27: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |             for(int k=j; k<comp.size(); k++) {
      |                          ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...