Codeforces_500_C
Posted 冷暖知不知
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces_500_C相关的知识,希望对你有一定的参考价值。
http://codeforces.com/problemset/problem/500/C
数组从后向前代表当前书从上向下,当前位置只要向前找,找到当前位置的书,再将之间的重量加起来就可以了,相同的数不重复加。
#include<cstdio> #include<iostream> #include<cstring> using namespace std; int vis[505],b[1005],w[505]; int main() { int n,m,sum = 0; cin >> n >> m; for(int i = 1;i <= n;i++) cin >> w[i]; for(int i = 1;i <= m;i++) { memset(vis,0,sizeof(vis)); cin >> b[i]; for(int j = i-1;j > 0;j--) { if(b[j] == b[i]) break; if(!vis[b[j]]) { sum += w[b[j]]; vis[b[j]] = 1; } } } cout << sum << endl; return 0; }
以上是关于Codeforces_500_C的主要内容,如果未能解决你的问题,请参考以下文章