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; }