結果
| 問題 |
No.1081 和の和
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-06-19 22:32:27 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 3,526 bytes |
| コンパイル時間 | 2,047 ms |
| コンパイル使用メモリ | 193,432 KB |
| 最終ジャッジ日時 | 2025-01-11 07:06:41 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 WA * 1 |
| other | WA * 8 |
ソースコード
#include <iostream>
#include <string>
#include <algorithm>
#include <bits/stdc++.h>
#include <vector>
#include <iomanip>
#include <cmath>
#include <stdio.h>
#include <queue>
#include <cctype>
#include <deque>
#include <map>
#define rep(i,N) for (ll i = 0; i < (N); i++)
#define repone(i,N) for(ll i = 1; i < (N); i++)
#define REP(i,N) for (ll i = (N)-1; i >= 0; i--)
#define FOR(j,i,N) for (ll j = (N)-1; j > (i); j--)
#define repsqrt(i,N) for(ll i = 1; i*i <= (N); i++)
#define updown(i,a,b) for(ll i = (a)-1; i < (b); i++)
#define ST string
#define vec vector<ll>
#define vecs vector<string>
#define outb(s) cout << fixed << setprecision(15) << s << endl;
#define out(s) cout << s << endl;
#define Graph vector<vector<ll>>
#define vecb vector<lb>
using ll = long long;
using lb = long double;
using l = int;
using namespace std;
const ll mod = 1000000007;
const ll ze = 0;
const lb zeb = 0.0;
const ll on = 1;
const ll INF = 1e8;
const lb pi = 3.14159265358979;
using ll = long long;
using lb = long double;
ll nCk(ll N, ll K){
if(N>1){
ll kid = 1;
for(ll i = N; i > N - K; i--){
kid = kid * i;
}
for(ll i = 1; i < K + 1; i++){
kid = kid / i;
}
return kid;
}
else{
return 0;
}
}
ll stair_pow(ll N){// 階乗
ll sum = 1;
for(ll i = 1; i <= N; i++){
sum = sum * i % mod;
}
return sum % mod;
}
ll gcd(ll P, ll Q){
return Q ? gcd(Q,P % Q):P;
}
ll lcm(ll P, ll Q){
return P / gcd(P,Q) * Q;
}
bool is_prime(ll x){
if(x <= 1){
return false;
}
for(ll i=2; i * i <= x; i++){
if(x%i==0){
return false;
}
}
return true;
}
ll sum_of_num(ll num){// 各位の和
ll dig;
ll sum = 0;
while(num){
dig = num % 10;
sum = sum + dig;
num = num / 10;
}
return sum;
}
ll how_many_break(ll n, ll m){// 何回割れるか
ll counter = 0;
while (n % m == 0){
n = n / m;
counter++;
}
return counter;
}
ll many_pow(ll N, ll M){ // NのM乗
if(M == 0)return 1;
else{
ll sum = 1;
for(ll i = 0; i < M; i++){
sum *= N;
}
return sum;
}
}
ll one_to_i(ll i){ // 1からiまでの和
if(i < 0){
return 0;
}
else{
return i*(i+1)/2;
}
}
ll how_many_yaku(ll num){
ll ans = 0;
rep(i,num){
if(num % (i+1) == 0)ans++;
}
return ans;
}
ll Digit(ll num){
ll digit=0;
while(num!=0){
num /= 10;
digit++;
}
return digit;
}
ll binary_search(ll left, ll right, ll N){
ll count = 0;
while (right - left > 1) {
ll mid = left + (right - left) / 2;
if (mid <= N) left = mid;
else right = mid;
count++;
}
return count;
}
/*-----------------------------------------------------------------------------------*/
// cout << fixed << setprecision(15)
// continue
// count(S.begin(),S.end(),'');
// reverse(S.begin(), S.end());
// S.substr(8, 8)
// sort(p.begin(), p.end());
// sort(p.rbegin(), p.rend()); ← 降順sort.
/*-----------------------------------------------------------------------------------*/
/*備忘録*/
/*-----------------------------------------------------------------------------------*/
//・n⊕n=0
//・n⊕(n+1)=1 (n∊偶数)
/*-----------------------------------------------------------------------------------*/
int main(){
ll n;
cin >> n;
ll ans = 0;
rep(i,n){
ll a;
cin >> a;
a %= mod;
if(i == 0 || i == n-1){
ans += a;
}
else{
ll p = a*(n-1);
ans += p;
}
ans %= mod;
}
out(ans);
return 0;
}