競プロをしながら、節約と株式投資でセミリタイアを目指す東大卒のブログ

東大卒でメーカー勤務の私がセミリタイアするために投資や競プロを頑張っていこうという趣旨で始めたブログです。独身男性です。火木土日に更新予定です。お金について考えています。

ABC166で書いたコード

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();

           //もしABCならARC,ARCならABC
            if(a == "ABC")
                Console.WriteLine("ARC");
            else
                Console.WriteLine("ABC");

        }
    }
    class ProgramB
    {
        static void Main(string args)
        {
            //入力
            string a = Console.ReadLine().Split(' ');
            int n = int.Parse(a[0]);
            int k = int.Parse(a[1]);
            int sunuke = new int[n];

            //条件を読んで、お菓子を持っていたら1にする
            for (int i = 0i < ki++)
            {
                int d = int.Parse(Console.ReadLine());
                string s = Console.ReadLine().Split(' ');
                for(int j = 0;j <d;j++)
                {
                    sunuke[int.Parse(s[j]) - 1] = 1;
                }
            }
 
            int count = 0;

            //お菓子ない人をあぶりだす
            for (int i = 0i < ni++)
            {
                if (sunuke[i] == 0)
                    count++;
                
            }

            //答え出力
            Console.WriteLine(count);
 
 
        }
    }
    
    class ProgramC
    {
        static void Main(string args)
        {
            //入力
            string a = Console.ReadLine().Split(' ');
            int n = int.Parse(a[0]);
            int m = int.Parse(a[1]);
            long h = new long[n];
            long count = new long[n];

            string s = Console.ReadLine().Split(' ');
            for (int i = 0i < ni++)
                h[i] = long.Parse(s[i]);

            //それぞれ不適合条件を取り出す
            for (int i = 0i < mi++)
            {
                string pass = Console.ReadLine().Split(' ');
                if (h[long.Parse(pass[0]) - 1] > h[long.Parse(pass[1]) - 1])
                    count[long.Parse(pass[1]) - 1]++;

                if (h[long.Parse(pass[0]) - 1] < h[long.Parse(pass[1]) - 1])
                    count[long.Parse(pass[0]) - 1]++;

                if (h[long.Parse(pass[0]) - 1] == h[long.Parse(pass[1]) - 1])
                {
                    count[long.Parse(pass[0]) - 1]++;
                    count[long.Parse(pass[1]) - 1]++;
                }
                    
            }

            int ans = 0;

            //もし不適行条件がなければ足す
            for (int i = 0i < ni++)
            {
                if (count[i] == 0)
                    ans++;
                
            }

            //答え出力
            Console.WriteLine(ans);


        }
    }

    class ProgramD
    {
        static void Main(string args)
        {
            //入力
            long x = long.Parse(Console.ReadLine());

            //Aを0から1000、Bを-1000から1000で全探索(10の6乗なので間に合う)
            for (long i = 0i < 1000i++)
                for (long j = -1000j < 1000j++)
                {
                    if(i*i*i*i*i - j*j*j*j*j == x)
                    {
                        Console.WriteLine(i + " " + j);
                        return;
                    }
 
                }
 
        }
    }

    class ProgramE
    {
        static void Main(string args)
        {
            //入力
            long n = long.Parse(Console.ReadLine());
            long a = new long[n]; //Lの数を残しておく
            long L = new long[n]; //i側の条件
            long R = new long[n]; //j側の条件

            string[] s = Console.ReadLine().Split(' ');

            //式変形からi + Ai = j - Ajでこの比較をする(i < j)
            for (int i = 0i < ni++)
            {
                L[i] = i - long.Parse(s[i]);
                R[i] = i + long.Parse(s[i]);
            }

            long count = 0;

            //i < jの条件下なので、jの値を求める。そしてその時の値がiにあるかみる
            for(int i = 0;i < n;i++)
            {
                //j側の条件を見る
                long temp2 = L[i];
                //aの中にはすでにi側で満たす数が入っている
                if(temp2 > 0)
                    count += a[temp2];

                //R側の条件を求める
                long temp = R[i];

                //i側の条件を追加する
                if(temp < n)
                {
                    a[temp]++;
                }
                

            }

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