NC20026. [HNOI2002]营业额统计
描述
输入描述
第一行为正整数,表示该公司从成立一直到现在的天数;
接下来的n行每行有一个正整数,表示第i天公司的营业额。
输出描述
仅有一个正整数,即每一天最小波动的和,结果不超过。
示例1
输入:
6 5 1 2 5 4 6
输出:
12
说明:
5+|1-5|+|2-1|+|5-5|+|4-5|+|6-5|=5+4+1+0+1+1=12C(clang11) 解法, 执行用时: 381ms, 内存消耗: 580K, 提交时间: 2020-12-21 21:20:46
#include<stdio.h> #include<math.h> int main() { int n,i,a[1000001],j,k,sum,min; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); sum=a[0]; for(i=1;i<n;i++) { min=abs(a[i]-a[0]); for(j=1;j<i;j++) if(abs(a[i]-a[j])<min) min=abs(a[i]-a[j]); sum+=min; } printf("%d\n",sum); }
C++(g++ 7.5.0)(g++7.5.0) 解法, 执行用时: 858ms, 内存消耗: 572K, 提交时间: 2023-06-16 21:12:16
#include<bits/stdc++.h> typedef long long ll; using namespace std; #define MAXN 50005 int a[MAXN], n; ll ans; int main() { cin >> n >> a[1]; ans = a[1]; for(int i = 2; i <= n; i++) { int res = 1e9; cin >> a[i]; for(int j = 1; j < i; j++) { res = min(res, abs(a[i] - a[j])); } ans += res; } cout << ans << endl; }
C++(clang++11) 解法, 执行用时: 169ms, 内存消耗: 540K, 提交时间: 2022-07-28 14:17:00
#include<bits/stdc++.h> using namespace std; int main() { int n; int a[40000]; cin>>n; for(int i=0;i!=n;i++) cin>>a[i]; long ans=a[0]; for(int i=1;i!=n;i++) { int smin; smin=2100000000; for(int j=0;j<i;j++) smin=min(smin,abs(a[i]-a[j])); ans+=smin; } cout<<ans; }