東大卒のお金やりくり奮闘記~株、家計、趣味、経済~

東大卒でメーカー勤務の私がセミリタイアするために投資などを頑張っていこうという趣旨で始めたブログです。既婚男性です。株、家計、趣味、経済の話をメインにゆるゆる話します。

ABC163で書いたコード

using System;
using System.Numerics;
using System.Linq;
using System.Collections.Generic;
using System.Text;

namespace Atcoder20200419
{
    class ProgramA
    {
        static void Main(string args)
        {
            //入力
            int n = int.Parse(Console.ReadLine());

            //2nPIを出力
            Console.WriteLine(2*n*Math.PI);
        }
    }

    class ProgramB
    {
        static void Main(string args)
        {
            //入力
            string s = Console.ReadLine().Split(' ');
            int n = int.Parse(s[0]);
            int m = int.Parse(s[1]);
            int sum = 0;

            string a = Console.ReadLine().Split(' ');
            //それぞれの宿題の日数を足していく。
            for (int i = 0;i < m;i++)
            {
                sum += int.Parse(a[i]);
                //もし宿題の人数を超えたらアウトなので-1を出力
                if(sum > n)
                {
                    Console.WriteLine("-1");
                    return;
                }
                
            }

            //答え出力
            Console.WriteLine(n - sum);
        }
    }
 

    class ProgramC
    {
        static void Main(string args)
        {
            //入力
            string s = Console.ReadLine().Split(' ');
            int n = int.Parse(s[0]);
            int k = int.Parse(s[1]);

            string a = Console.ReadLine().Split(' ');
            int boss = new int[n];
            //それぞれのボスを足していく
            for (int i = 0i < n -1i++)
            {
                boss[int.Parse(a[i]) - 1]++;

            }
            //答え出力する
            for (int i = 0i < ni++)
            {
                Console.WriteLine(boss[i]);
            }
            
        }
    }  

    class ProgramD
    {
        static void Main(string args)
        {
            //入力
            string s = Console.ReadLine().Split(' ');
            long n = long.Parse(s[0]);
            long k = long.Parse(s[1]);
            long sum = 0;
            long mod = 1000000000 + 7;

            long[] wa = new long[n+1];

            //0からiまでの和をメモ化しておく
            for (long i = 0i < n + 1i++)
            {
                if (i == 0)
                    wa[0] = 0;
                else
                    wa[i] = i + wa[i - 1];
            }
            
            //答を足していく。n+1だけ例外処理しとく
            for (long i = ki <= n + 1i++)
            {
                if (i < n + 1)
                {
                    long temp = wa[n] - wa[n - i] - wa[i - 1] + 1;
                    sum += temp % mod;
                }
                else
                    sum += 1;
                sum %= mod;

            }

            if (sum < 0)
                sum = mod - sum;

            //答え出力
            Console.WriteLine(sum);
            
        }
    }
    
}