답안 #555311

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
555311 2022-04-30T12:09:19 Z 600Mihnea Sightseeing in Kyoto (JOI22_kyoto) C++17
0 / 100
3 ms 3412 KB
#include <bits/stdc++.h>

bool home = 1;

using namespace std;

typedef long long ll;
const int N=(int)1e5+7;
const ll INF=(ll)1e18+7;
int n;
int m;
ll a[N];
ll b[N];
bool in_shib_a[N];

signed main() {
#ifdef ONLINE_JUDGE
  home = 0;
#endif
  home = 0;

  if (home) {
    freopen("I_am_iron_man", "r", stdin);
  }
  else {
    ios::sync_with_stdio(0); cin.tie(0);
  }

  vector<int> shib_a;
  cin>>n>>m;
  for (int i=1;i<=n;i++) {
    cin>>a[i];
    while (1) {
      if((int)shib_a.size()<2) break;
      int p1=shib_a[(int)shib_a.size()-2];
      int p2=shib_a[(int)shib_a.size()-1];
      if(a[i]-a[p2]<a[p2]-a[p1]) {
        shib_a.pop_back();
      }else{
        break;
      }
    }
    shib_a.push_back(i);
  }
  for (auto &i:shib_a) in_shib_a[i]=1;
  for (int i=1;i<=m;i++) cin>>b[i];

  vector<vector<ll>> dp(n+1,vector<ll> (m+1, INF));
  dp[1][1]=0;
  for (int i=1;i<=n;i++){
    for(int j=1;j<=m;j++){
      if(i+1<=n) dp[i+1][j]=min(dp[i+1][j],dp[i][j]+b[j]);
      if(j+1<=m&&in_shib_a[i]) dp[i][j+1]=min(dp[i][j+1],dp[i][j]+a[i]);
    }
  }




  cout<<dp[n][m]<<"\n";



}

Compilation message

kyoto.cpp: In function 'int main()':
kyoto.cpp:23:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |     freopen("I_am_iron_man", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 1 ms 724 KB Output isn't correct
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Incorrect 3 ms 3412 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Incorrect 1 ms 724 KB Output isn't correct
5 Halted 0 ms 0 KB -