0549-A Traveler

問題概要

日本語なので略

解法

原点からi番目の旅館への距離をd[i]とすると,i番目からj番目に移動するのにかかる時間は
abs(d[i]-d[j])となる.
よってこれを指示された通りに加算していけば良い.

実装(C++)

#include <cstdio>
#include <cstdlib>
int d[100000];
int n,m,t,r,now;
int main() {
	scanf("%d%d",&n,&m);
	for(int i=0;i<n-1;i++){
		scanf("%d",&t);
		d[i+1]=d[i]+t;
	}
	for(int i=0;i<m;i++){
		scanf("%d",&t);
		r=(r+abs(d[now]-d[now+t]))%100000;
		now+=t;
	}
	printf("%d\n",r);
	return 0;
}