Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #pragma GCC optimize ("O3")
- #pragma GCC optimize ("Ofast")
- #pragma GCC optimize ("unroll-loops")
- #define I first
- #define II second
- #define ver1 v*2+1
- #define ver2 ver1+1
- #define tm ((tl+tr)>>1)
- #define pb push_back
- #define accelerate ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
- #define vec2(type,row,col,name,val) vector<vector<type>> name((row), vector<type>((col), val))
- #define pairprint(v) cout<<(v).first<<' '<<(v).second<<endl;
- #define vec(type,col,name,val) vector<type> name((col), val)
- #define pairrev(v) swap(v.I,v.II)
- #define all(NAME) (NAME).begin(),(NAME).end()
- #define square(x) ((x) * (x))
- #define dig(c) (int(c)-'0')
- using namespace std;
- typedef long long ll;
- typedef long double ld;
- typedef pair<ll,ll> pairll;
- typedef unsigned long long ull;
- const ll DIM = 3e5+1;
- const ll MOD = 1e9+7;
- const ll LOG = 19;
- const ll INF = 1e9;
- const ld PI = 2*asin(1);
- const char *type = (sizeof(ll) == sizeof(long long) ? "%lld" : sizeof(ll) == sizeof(short) ? "%hd" : "%d");
- ll binpow(ll n, ll p){
- if (p == 0) return 1;
- p --;
- ll m = n;
- while(p){
- if(p&1) n = (n*m)%MOD;
- m = (m*m) % MOD;
- p >>= 1;
- }
- return n;
- }
- void solve(){
- ll n;
- cin >> n;
- ll sum = 0, a[n];
- for (ll &i: a){
- cin >> i;
- sum += i;
- }
- ll ans = 0;
- for (ll i: a){
- sum -= i;
- ans = (ans + i*sum) % MOD;
- }
- cout << ans << '\n';
- return;
- }
- int main(){
- //accelerate;
- ll t = 1;
- //scanf(type, &t);
- while(t --){
- solve();
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment