結果

問題 No.754 畳み込みの和
ユーザー KuraKura
提出日時 2019-09-25 22:21:49
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 102 ms / 5,000 ms
コード長 4,470 bytes
コンパイル時間 1,162 ms
コンパイル使用メモリ 116,464 KB
実行使用メモリ 30,872 KB
最終ジャッジ日時 2024-09-22 17:55:35
合計ジャッジ時間 2,043 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 101 ms
30,872 KB
testcase_01 AC 100 ms
26,388 KB
testcase_02 AC 102 ms
28,688 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Microsoft (R) Visual C# Compiler version 3.9.0-6.21124.20 (db94f4cc)
Copyright (C) Microsoft Corporation. All rights reserved.

ソースコード

diff #

using System;
using System.IO;
class Start
{
    static void Solve()
    {
        long n;Inl(out n);
        long[] a = new long[n + 1], b = new long[n + 1];
        for (int i = 0; i <= n; i++) Inl(out a[i]);
        for (int i = 0; i <= n; i++) Inl(out b[i]);
        long ans = 0, B = 0;
        for (int i = 0; i <= n; i++) B += b[i];
        for(int i = 0; i <= n; i++)
        {
            ans += B % MOD * a[i];
            ans %= MOD;
            B -= b[n - i];
        }
        Outl(ans);
    }
    const long MOD = 1000000007;

    static void Main()
    {
        var sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
        Console.SetOut(sw);
        Solve();
        Console.Out.Flush();
    }

    static void Inl(out long t) { t = long.Parse(Console.ReadLine()); }
    static void Inl(out string t) { t = Console.ReadLine(); }
    static void Inl(out char t) { t = Console.ReadLine()[0]; }
    static void Inl(out double t) { t = double.Parse(Console.ReadLine()); }
    static void Inl<T>(ref T[] t)
    {
        string[] s = Console.ReadLine().Split();
        Type type = typeof(T);
        int n = s.Length;
        if (type == LONG) for (int i = 0; i < n; i++) t[i] = (T)(object)long.Parse(s[i]);
        else if (type == STRING) for (int i = 0; i < n; i++) t[i] = (T)(object)s[i];
        else if (type == CHAR) for (int i = 0; i < n; i++) t[i] = (T)(object)s[i][0];
        else for (int i = 0; i < n; i++) t[i] = (T)(object)double.Parse(s[i]);
    }
    static void Inl<T, U>(out T t, out U u) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); }
    static void Inl<T, U, V>(out T t, out U u, out V v) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); In(out v, ref s, 2); }
    static void Inl<T, U, V, W>(out T t, out U u, out V v, out W w) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); In(out v, ref s, 2); In(out w, ref s, 3); }
    static void Inl<T, U, V, W, X>(out T t, out U u, out V v, out W w, out X x) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); In(out v, ref s, 2); In(out w, ref s, 3); In(out x, ref s, 4); }
    static void Inl<T, U, V, W, X, Y>(out T t, out U u, out V v, out W w, out X x, out Y y) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); In(out v, ref s, 2); In(out w, ref s, 3); In(out x, ref s, 4); In(out y, ref s, 5); }
    static void Inl<T, U, V, W, X, Y, Z>(out T t, out U u, out V v, out W w, out X x, out Y y, out Z z) { string[] s = Console.ReadLine().Split(); In(out t, ref s, 0); In(out u, ref s, 1); In(out v, ref s, 2); In(out w, ref s, 3); In(out x, ref s, 4); In(out y, ref s, 5); In(out z, ref s, 6); }
    static void In<T>(out T t, ref string[] s, int i)
    {
        Type type = typeof(T);
        if (type == LONG) t = (T)(object)long.Parse(s[i]);
        else if (type == STRING) t = (T)(object)s[i];
        else if (type == CHAR) t = (T)(object)s[i][0];
        else t = (T)(object)double.Parse(s[i]);
    }
    static Type LONG = typeof(long);
    static Type STRING = typeof(string);
    static Type CHAR = typeof(char);

    static void Out<T>(T t) { Console.Write(t); }
    static void Outl<T>(T t) { Console.WriteLine(t); }
    static void Out(double d, int n) { string s = d.ToString("F" + n); Console.Write(s); }
    static void Outl(double d, int n) { string s = d.ToString("F" + n); Console.WriteLine(s); }
    static void Outl<T>(ref T[] t)
    {
        Out(t[0]);
        for (int i = 1; i < t.Length; i++) Out(" " + t[i]);
        Out('\n');
    }

    static void Swap<T>(ref T a, ref T b) { T c = a; a = b; b = c; }
    static void Sort<T>(ref T[] t) { Array.Sort(t); }
    static T Max<T>(params T[] t) where T : IComparable { T max = t[0]; for (int i = 1; i < t.Length; i++) if (max.CompareTo(t[i]) < 0) max = t[i]; return max; }
    static T Min<T>(params T[] t) where T : IComparable { T max = t[0]; for (int i = 1; i < t.Length; i++) if (max.CompareTo(t[i]) > 0) max = t[i]; return max; }
    struct Pair
    {
        public long a, b;
        public Pair(long a, long b) { this.a = a; this.b = b; }
    }
    static void aSort(ref Pair[] a) { Array.Sort(a, (x, y) => (int)(x.a - y.a)); }
    static void bSort(ref Pair[] a) { Array.Sort(a, (x, y) => (int)(x.b - y.b)); }
}
0