제출 #1002190

#제출 시각아이디문제언어결과실행 시간메모리
1002190vahagngK개의 묶음 (IZhO14_blocks)C++17
53 / 100
1036 ms8536 KiB
//----------vahagng----------// #define _CRT_SECURE_NO_WARNINGS #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; template <class T> using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>; // Defines #define ll long long #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(), v.rend() #define pii pair<int, int> #define ppb pop_back #define pb push_back #define mii map<int, int> #define mll map<long long, long long> #define no_ans cout << -1 << '\n'; #define YES cout << "YES\n"; #define NO cout << "NO\n"; #define ok cout << "OK\n"; #define ld long double #define sz(v) v.size() // Constants const int N = 100005, M = 3e5+10; const ll inf = 1e18, mod = 1e9+7, mod1 = 998244353; // Functions void SetIO(string str = "") { if (str != "") { freopen((str + ".in").c_str(), "r", stdin); freopen((str + ".out").c_str(), "w", stdout); } else { freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); } } void FastIO() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); } ll add(ll a, ll b) { return (a + b)%mod; } ll mult(ll a, ll b) { return (a%mod * b%mod)%mod; } ll sub(ll a, ll b) { return (a - b + 2*mod)%mod; } long long binpower(long long a, long long n) { if(n == 0) { return 1; } if(n == 1) { return a; } if(n % 2 == 1) { long long curr = binpower(a, n / 2); curr = mult(curr, curr); curr = mult(a, curr); return curr; } else { long long curr = binpower(a, n / 2); return mult(curr, curr); } } // const int N = 2e5 + 10; // int n; // pair<int,int>max_dist; // vector<int>adj[N]; // int dists[N]; // void dfs(int node, int parent, int dist) // { // dists[node] = max(dists[node], dist); // if(dist > max_dist.first) // { // max_dist = {dist, node}; // } // for(auto i: adj[node]) // { // if(i == parent) continue; // dfs(i, node, dist + 1); // } // } // pair<int, int> get_farthest_distance(int node) // { // max_dist = {-1, -1}; // dfs(node, -1, 0); // return max_dist; // } void precision(int x) { cout.setf(ios::fixed | ios::showpoint); cout.precision(x); return; } ll countSubstring(const string str, const string sub) { if (sub.length() == 0) return 0; ll count = 0; for(int i = 0; i < str.size() - sub.size() + 1; i++) { int okk = 1; for(int j = i; j < i + sub.size(); j++) { if(str[j] != sub[j - i]) { okk = 0; break; } } count += okk; } return count; } ll ceil_division(ll a, ll b) { return (a + b - 1) / b; } ll max_subarray_sum(vector<ll>& v, int n) { ll a = INT64_MIN, b = 0; for(int i = 0; i < n; i++) { b += v[i]; if(b > a) { a = b; } if(b<0) { b = a; } } return a; } // Solution bool check(string s) { string s1 = s; reverse(all(s)); return s1 == s; } int f(int x) { if(x < 10) return x; int res = 1; while(x) { if(x%10) res*=(x%10); x/=10; } return f(res); } ll dp[100005][102]; void solve(int tc) { ll n, k; cin >> n >> k; vector<ll>v(n+1); for(int i = 1; i <= n; i++) cin >> v[i]; for(int i = 1; i <= n; i++) { for(int j = 1; j <= k; j++) { dp[i][j] = INT64_MAX/10; } } ll mx = 0; for(int i = 1; i <= n; i++) { mx = max(mx, v[i]); dp[i][1] = mx; } for(int i = 2; i <= k; i++) { for(int j = i; j <= n; j++) { mx = 0; for(int K = j; K >= i; K--) { mx = max(mx, v[K]); dp[j][i] = min(dp[j][i], mx + dp[K-1][i-1]); } } } cout << dp[n][k] << '\n'; } void precalc() { } int main() { // SetIO("mootube"); FastIO(); precalc(); int test_case = 1; // cin >> test_case; int cnt = 1; while (test_case--) { solve(cnt++); } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

blocks.cpp: In function 'long long int countSubstring(std::string, std::string)':
blocks.cpp:126:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  126 |  for(int i = 0; i < str.size() - sub.size() + 1; i++)
      |                 ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.cpp:129:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  129 |         for(int j = i; j < i + sub.size(); j++)
      |                        ~~^~~~~~~~~~~~~~~~
blocks.cpp: In function 'void SetIO(std::string)':
blocks.cpp:36:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   36 |         freopen((str + ".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.cpp:37:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 |         freopen((str + ".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
blocks.cpp:39:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   39 |         freopen("input.txt", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
blocks.cpp:40:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   40 |         freopen("output.txt", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...