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

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

ABC164で書いたコード

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

namespace Atcoder20200419
{
    class ProgramA
    {
        static void Main(string args)
        {
 
            //入力
            string a = Console.ReadLine().Split(' ');
            long s = long.Parse(a[0]);
            long l = long.Parse(a[1]);
 
 
            //羊が多いとき(s > l)のときは生き残る、それ以外は死ぬ
            if (s > l)
                Console.WriteLine("safe");
            else
                Console.WriteLine("unsafe");
 
 
        }
    }

    class ProgramB
    {
        static void Main(string args)
        {

            //入力
            string s = Console.ReadLine().Split(' ');
            long a = long.Parse(s[0]);
            long b = long.Parse(s[1]);
            long c = long.Parse(s[2]);
            long d = long.Parse(s[3]);


            //両方まだ体力があれば続行
            while(a >= 1 && c >= 1)
            {
                //高橋君の攻撃
                c -= b;
                //ここで体力がなくなればおしまい
                if (c < 1)
                    break;

                //青木君の攻撃
                a -= d;

            }

            //高橋君モンスターの体力があればYes、それ以外はNo
            if (a > 0)
                Console.WriteLine("Yes");
            else
                Console.WriteLine("No");


        }
    }

 

    class ProgramC
    {
        static void Main(string args)
        {

            //入力
            int n = int.Parse(Console.ReadLine());
            string input = new string[n];

            for (int i = 0i < ni++)
                input[i] = Console.ReadLine();

            
            //ソートする
            Array.Sort(input);
            long count = 1;//最初はとりあえずあることを含む

            //もし前の文字列と違えば、数える
            for(int i = 1;i < n;i++)
            {
                if (input[i] != input[i - 1])
                    count++;
            }

            //出力
            Console.WriteLine(count);
            
        }
    } 

    class ProgramD
    {
        static void Main(string args)
        {

            //入力
            string s = Console.ReadLine();
            long ans = 0;
            long temp = 0;
            int sum = new int[2019];
            //余りが0という状態は無条件に1つ加えられる。
            sum[0]++;
            
            //左からi桁のときのmodを入れる
            for (int i = s.Length - 1;i >= 0i--)
            {
                
                temp += (s[i] - '0') * modpow(10s.Length - 1 - i2019);
                temp %= 2019;

                sum[temp]++;

            }

            //余りの個数に応じて計算する
            for (int i = 0i < 2019i++)
                ans += sum[i] * (sum[i] - 1) / 2;
            
            //答え出力
            Console.WriteLine(ans);
            
        }

        //繰り返し二乗法で求める
        static long modpow(long along nlong MOD)
        {
            if (n == 0)
                return 1;
            if (n % 2 == 0)
            {
                long temp = modpow(an / 2MOD);
                return temp * temp % MOD;
            }

            return a * modpow(an - 1MOD) % MOD;
        }
    }
    
}