Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
127814 罗恩祥 花费 C++ 通过 100 0 MS 260 KB 891 2024-01-25 10:27:19

Tests(10/10):


#include <bits/stdc++.h> using namespace std; long long lst[100001]; long long lst2[100001]; long long N,M; //N分成M bool check(long long num) { long long k = 1; //分成几天 long long sum = 0; for(int i = 1;i <= N;i++) { sum += lst[i]; if(sum > num) { sum = lst[i]; k++; } } // if(sum != 0) k++; return k <= M; } int main() { cin >> N >> M; long long S = 0,Max = 0,Min = 0x3f3f3f3f; for(int i = 1;i <= N;i++) { cin >> lst[i]; S += lst[i]; Max = max(Max,lst[i]); Min = min(Min,lst[i]); } if(N == M) //分成的份数 == 总份数 { cout << Max; return 0; } if(M == 1) { cout << S; return 0; } long long l = Min,r = S+1; long long minn = 0x3f3f3f3f; while(l < r) { long long mid = (l + r) / 2; if(check(mid)) r = mid; else l = mid + 1; } cout << r << endl; }


测评信息: