結果

問題 No.1081 和の和
ユーザー madokamadoka
提出日時 2020-06-19 21:35:24
言語 C++11
(gcc 13.3.0)
結果
AC  
実行時間 3 ms / 2,000 ms
コード長 6,816 bytes
コンパイル時間 1,780 ms
コンパイル使用メモリ 171,420 KB
実行使用メモリ 9,284 KB
最終ジャッジ日時 2024-07-03 14:02:52
合計ジャッジ時間 2,286 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
8,248 KB
testcase_01 AC 3 ms
8,388 KB
testcase_02 AC 3 ms
8,124 KB
testcase_03 AC 3 ms
8,644 KB
testcase_04 AC 3 ms
8,904 KB
testcase_05 AC 2 ms
8,520 KB
testcase_06 AC 2 ms
8,388 KB
testcase_07 AC 3 ms
9,284 KB
testcase_08 AC 3 ms
8,428 KB
testcase_09 AC 3 ms
8,376 KB
testcase_10 AC 3 ms
8,520 KB
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

/********include********/
#include <cstdio>
#include <cstring>
#include <iostream>
#include <string>
#include <cmath>
#include <bitset>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <algorithm>
#include <complex>
#include <unordered_map>
#include <unordered_set>
#include <random>
#include <cassert>
#include <fstream>
#include <utility>
#include <functional>
#define popcount __builtin_popcount
using namespace std;
/***/
//#include <iomanip>
//#include <cmath>
#include <bits/stdc++.h>
/********define********/
#define rep(i,x) for(long long i=0;i<x;i++)
#define repn(i,x) for(long long i=1;i<=x;i++)
#define rrep(i,x) for(long long i=x-1;i>=0;i--)
#define rrepn(i,x) for(long long i=x;i>1;i--)
#define REP(i,n,x) for(long long i=n;i<x;i++)
#define REPN(i,n,x) for(long long i=n+1;i<x;i++)
#define pr printf
#define re return
#define mod 1000000007
//#define mod 998244353
#define INF 1e18+5//19
const double PI=3.14159265358979323846;
#define fi first
#define se second
#define MAX(a,b) (((a)>(b))?(a):(b))
#define MIN(a,b) (((a)<(b))?(a):(b))
typedef long long int ll;
typedef pair<long long, long long> P;
/********128bit CFNG********/
/*
std::ostream &operator<<(std::ostream &dest, __int128_t value) {
std::ostream::sentry s(dest);
if (s) {
__uint128_t tmp = value < 0 ? -value : value;
char buffer[128];
char *d = std::end(buffer);
do {
--d;
*d = "0123456789"[tmp % 10];
tmp /= 10;
} while (tmp != 0);
if (value < 0) {
--d;
*d = '-';
}
int len = std::end(buffer) - d;
if (dest.rdbuf()->sputn(d, len) != len) {
dest.setstate(std::ios_base::badbit);
}
}
return dest;
}
__int128 parse(string &s) {
__int128 ret = 0;
for (int i = 0; i < s.length(); i++)
if ('0' <= s[i] && s[i] <= '9')
ret = 10 * ret + s[i] - '0';
return ret;
}
*/
/********使********/
//
vector<pair<long long, long long> > prime_factorize(long long n) {
vector<pair<long long, long long> > res;
for (long long p = 2; p * p <= n; ++p) {
if (n % p != 0) continue;
int num = 0;
while (n % p == 0) { ++num; n /= p; }
res.push_back(make_pair(p, num));
}
if (n != 1) res.push_back(make_pair(n, 1));
return res;
}
//
vector<long long> calc_divisor(long long n) {
vector<long long> res;
for (long long i = 1LL; i*i <= n; ++i) {
if (n % i == 0) {
res.push_back(i);
long long j = n / i;
if (j != i) res.push_back(j);
}
}
sort(res.begin(), res.end());
return res;
}
//
ll gcd(ll x, ll y) { return y ? gcd(y, x % y) : x; }
//
ll gcd(const vector<ll> &v) {
ll ret = v[0];
for (ll i = 1; i < v.size(); i++)
ret = gcd(ret, v[i]);
return ret;
}
//
ll lcm(ll x, ll y) { return x / gcd(x, y) * y; }
//
ll lcm(const vector<ll> &v) {
ll ret = v[0];
for (ll i = 1; i < v.size(); i++)
ret = lcm(ret, v[i]);
return ret;
}
/****************/
//vector<long long> g[200020];
vector<pair<long long,long long>> g[200020];
ll s[200020];
bool used[200020];
//bool dp[100005];
ll A,B,C,D,H,K,M,N,Q,R,S,T,W,X,Y;
double dA,dB,dC,dH,dK,dM,dN,dQ,dR,dS,dT,dW,dX,dY;
//1000000000000000000 //10^18
//1000000000 //10^9
int main()
{
cin.tie(0);
ios::sync_with_stdio(false);
/********使********/
//std::sort(v.begin(),v.end());//
//std::sort(v.begin(),v.end(),std::greater<long long>());//
//v.erase(unique(v.begin(), v.end()), v.end());
//vector<ll> v(N, 0);
//vector<pair<long long, long long> > p(N);
//sort(p.begin(), p.end());
//sort(p.begin(), p.end(),greater<pair<long long,long long> >());
//priority_queue<long long, vector<long long>, greater<long long> > que;
//priority_queue<long long> que;
//map<ll, ll, std::greater<ll>> mp;
//deque<long long> dque;
//string s;
//wk=(ll)stoi(s);
//set<ll> st;
//stack<long long> sta;
//queue<long long> que;
//s.insert(0, " ");
//reverse(s.begin(),s.end());
//do{
//}while(next_permutation(v.begin(),v.end()));
//__int128 aa = 1;
/*****************/
long long ans,sum,cnt,cnt1,flg,flg1,flg2;
long long max,max1;
long long min,min1;
long long wk,wk1;
max=max1=wk=wk1=sum=ans=cnt=cnt1=flg=flg1=flg2=0;
min=min1=INF;
double dwk,dwk1,dsum,dsum1,dans,dans1;
dwk=dwk1=dsum=dsum1=dans=dans1=0;
cin >> N;
vector<ll>v(N);
rep(i,N){
cin >> v[i];
}
wk=N-1;
rep(i,wk){
vector<ll>s;
rep(j,N-1){
s.push_back((v[j]+v[j+1])%mod);
}
v=s;
v.resize(N-1);
N--;
s.clear();
}
pr("%lld",v[0]%mod);
re 0;
/*****************/
//pr("%lld\n",N);
//printf("%lld",(ll)ceil(dB/dA));
//puts("Yes");
//
//std::cout << s << std::endl;
//printf("%.12f\n",ret);
//cout << sum << '\n';
//pr("%02lld:%02lld",wk/60,wk%60);
/******CF***********/
/*
cin >> T;
while(T--){
cin >> N >> K;
std::vector<long long> v(N);
// 1
/*
for(long long i=0; i<N; i++){
std::cin >> v[i];
}
*/
//cout << sum << '\n';
//
//std::cout << s << std::endl;
//}
//re 0;
/******使***********/
//
/*
auto pf = prime_factorize(v[i]);
for(auto p:pf){
if(p.se!=wk){
}
}
*/
//
/*
vector<long long> div = calc_divisor(M);
// M d d * N <= M d
long long res = 1;
for (auto d : div) {
if (d * N <= M) res = max(res, d);
}
*/
//
/*
std::vector<ll> v(N);
rep(i, N) {
cin >> v[i];
}
cout << lcm(v) << endl;
return 0;
*/
//
/*
std::vector<ll> v(N);
rep(i, N) {
cin >> v[i];
}
cout << gcd(v) << endl;
return 0;
*/
//
/*
for(int i=x; ; i++){
bool dame=0;
for(int j=2; j*j<=i; j++){
if(i%j==0){
dame=1;
break;
}
}
if(!dame){
cout<<i<<endl;
return 0;
}
}
*/
//set
/*
std::set<long long> st;
for(long long i=0; i<N; i++){
std::cin >> v[i];
if(st.find(v[i])==st.end()){
st.insert(v[i]);
}
else{
st.erase(v[i]);
}
}
//if(ceil(sqrt(wk)==floor(sqrt(wk))))
//do{
//}while(next_permutation(v.begin(),v.end()));
/*****************/
//pr("%lld\n",N);
//printf("%lld",(ll)ceil(dB/dA));
//puts("Yes");
//
//std::cout << s << std::endl;
//printf("%.12f\n",ret);
//cout << sum << '\n';
//pr("%02lld:%02lld",wk/60,wk%60);
re 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0