比赛 ZLXOI2015Day2 评测结果 AAAAAAAAAA
题目名称 沼跃鱼数列变换 最终得分 100
用户昵称 ppfish 运行时间 0.023 s
代码语言 C++ 内存使用 1.17 MiB
提交时间 2015-10-30 20:20:07
显示代码纯文本
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. template<class T>inline void Read(T &x)
  5. {
  6. int f = 1;
  7. char t = getchar();
  8. while (t < '0' || t > '9') {
  9. if (t == '-') f = -1;
  10. t = getchar();
  11. }
  12. x = 0;
  13. while (t >= '0' && t <= '9') {
  14. x = x * 10 + t - '0';
  15. t = getchar();
  16. }
  17. x *= f;
  18. }
  19.  
  20. const int maxn = 100005;
  21. const int modulo = 9999997;
  22.  
  23. int n, m, ln;
  24. int A[maxn], B[maxn];
  25. bool ban[maxn];
  26.  
  27. long long ans = 1, en;
  28.  
  29. void input()
  30. {
  31. int x;
  32. Read(n);
  33. for (register int i = 1; i <= n; i++) Read(A[i]);
  34. Read(m);
  35. for (register int i = 1; i <= m; i++) Read(x), ban[x] = true;
  36. for (register int i = 1; i <= n; i++) if (!ban[i]) B[++ln] = A[i];
  37. }
  38.  
  39. void solve()
  40. {
  41. for (register int i = 1; i <= ln; i++) ans = 1ll * ans * (B[i] + 1) % modulo;
  42. en = ans;
  43. for (register int i = 1; i <= n; i++) {
  44. if (ban[i]) {
  45. ans = (ans + 1ll * en * A[i]) % modulo;
  46. }
  47. }
  48. ans = (ans - 1 + modulo) % modulo;
  49. cout << ans << endl;
  50. }
  51.  
  52. int main()
  53. {
  54. freopen("Marshtomp.in", "r", stdin);
  55. freopen("Marshtomp.out", "w", stdout);
  56.  
  57. input();
  58. solve();
  59. fclose(stdin);
  60. fclose(stdout);
  61. return 0;
  62. }