一开始WA了一次,这才反应过来应该用longlong而不是int,但是scanf和printf不知道哪出毛病了,运行不出来正确的结果,改成cin cout过了
从左向右扫描即可,对于第i的村庄到第i+1的村庄,肯定有abs(a[i+1]-a[i])个劳动力要花费
#include <iostream> #include <cstring> #include <cstdio> #include <string> #include <algorithm> #include <cmath> #define maxn 100000+50 using namespace std; int main() { int n; long long k,t; while (cin>>n&&n){ k=0;t=0; long long x; while (n--){ cin>>x; k+=abs(t); t+=x; } cout<<k<<endl; } }