[Nested Sum] Can you help me with this problem?
source link: http://codeforces.com/blog/entry/114447
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
[Nested Sum] Can you help me with this problem?
Problem source
104168D2 - Nested Sum (Hard Version)
Statement
Given an array of positive integers , find the value of modulo
Input
The first line of input contains an integer ().
The first line of each test case contains an integer (), the size of the array.
The second line of each test case contains integers (), the elements of the array.
The sum of n over all test cases doesn't exceed .
Output
For each test case output one line containing one integer, the sum described in the problem modulo
Example
Input
3
3
1 1 1
4
1 2 3 4
5
5 4 3 1 2
Output
What I've done
I have tried to solve this problem for an hour but when I submit it, many testcase is WA:
Test 1: OK, 0 point(s)
Group G1: 0.0 point(s)
Test 2: WRONG_ANSWER
Test 3: WRONG_ANSWER
Test 4: WRONG_ANSWER
Test 5: WRONG_ANSWER
Test 6: WRONG_ANSWER
Test 7: WRONG_ANSWER
Test 8: WRONG_ANSWER
Test 9: WRONG_ANSWER
Test 10: WRONG_ANSWER
Test 11: WRONG_ANSWER
Test 12: WRONG_ANSWER
Test 13: WRONG_ANSWER
Test 14: WRONG_ANSWER
Test 15: WRONG_ANSWER
Test 16: WRONG_ANSWER
Test 17: WRONG_ANSWER
Test 18: WRONG_ANSWER
Test 19: WRONG_ANSWER
Test 20: WRONG_ANSWER
Test 21: WRONG_ANSWER
Test 22: WRONG_ANSWER
Test 23: WRONG_ANSWER
Test 24: WRONG_ANSWER
Test 25: WRONG_ANSWER
Test 26: WRONG_ANSWER
Test 27: WRONG_ANSWER
Test 28: WRONG_ANSWER
Test 29: WRONG_ANSWER
Test 30: WRONG_ANSWER
Test 31: WRONG_ANSWER
Group G2: 0.0 point(s)
Test 32: WRONG_ANSWER
Test 33: WRONG_ANSWER
Test 34: WRONG_ANSWER
Test 35: WRONG_ANSWER
Test 36: WRONG_ANSWER
Test 37: WRONG_ANSWER
Test 38: WRONG_ANSWER
Test 39: WRONG_ANSWER
Test 40: WRONG_ANSWER
Test 41: WRONG_ANSWER
Test 42: WRONG_ANSWER
Test 43: WRONG_ANSWER
Test 44: WRONG_ANSWER
Test 45: WRONG_ANSWER
Test 46: WRONG_ANSWER
Test 47: WRONG_ANSWER
Test 48: WRONG_ANSWER
Test 49: WRONG_ANSWER
Test 50: WRONG_ANSWER
Test 51: WRONG_ANSWER
Test 52: WRONG_ANSWER
Test 53: WRONG_ANSWER
Test 54: WRONG_ANSWER
Test 55: WRONG_ANSWER
Test 56: WRONG_ANSWER
Test 57: WRONG_ANSWER
Test 58: WRONG_ANSWER
Test 59: WRONG_ANSWER
Test 60: WRONG_ANSWER
Test 61: WRONG_ANSWER
Test 62: WRONG_ANSWER
Test 63: WRONG_ANSWER
Test 64: WRONG_ANSWER
Test 65: WRONG_ANSWER
Test 66: WRONG_ANSWER
Test 67: WRONG_ANSWER
Test 68: WRONG_ANSWER
Test 69: WRONG_ANSWER
Test 70: WRONG_ANSWER
Test 71: WRONG_ANSWER
Test 72: WRONG_ANSWER
Test 73: WRONG_ANSWER
Test 74: WRONG_ANSWER
Test 75: WRONG_ANSWER
Test 76: WRONG_ANSWER
Test 77: WRONG_ANSWER
Test 78: WRONG_ANSWER
Test 79: WRONG_ANSWER
Test 80: WRONG_ANSWER
Test 81: WRONG_ANSWER
Test 82: OK
Test 83: OK
Test 84: OK
Test 85: OK
Test 86: OK
Test 87: OK
Test 88: OK
Test 89: OK
Test 90: OK
Test 91: OK
Test 92: OK
Test 93: OK
Test 94: OK
Test 95: OK
Test 96: OK
Test 97: OK
Test 98: OK
Test 99: OK
Test 100: OK
Test 101: OK
=
Points: 0.0
I don't know why my code failed, can you find out my mistake? This is my code.
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define fastio ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define multitest int _T; cin >> _T; while (_T--)
const int MOD = 1000000007;
int add(int x, int y)
{
return (x + y) % MOD;
}
int mul(int x, int y)
{
return (x * y) % MOD;
}
void solve()
{
int n;
cin >> n;
int a[n];
int pre1[n+1];
pre1[0] = 0;
for (int i = 0; i < n; ++i)
{
cin >> a[i];
pre1[i+1] = add(a[i], pre1[i]);
}
int pre2[n-1];
pre2[0] = 0;
for (int i = 1; i < n-1; ++i)
pre2[i] = add(pre2[i-1], mul(a[i], pre1[n] - pre1[i+1]));
int ans = 0;
for (int i = 0; i < n-2; ++i)
ans += mul(a[i], pre2[n-2] - pre2[i]);
cout << ans << endl;
}
signed main()
{
fastio;
multitest
solve();
}
Thank you in advance ❤️
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK