結果

問題 No.647 明太子
ユーザー kou_kkk
提出日時 2025-07-13 21:26:27
言語 C#(csc)
(csc 3.9.0)
結果
AC  
実行時間 82 ms / 4,500 ms
コード長 1,474 bytes
コンパイル時間 5,167 ms
コンパイル使用メモリ 117,316 KB
実行使用メモリ 27,940 KB
最終ジャッジ日時 2025-07-13 21:26:35
合計ジャッジ時間 7,508 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 20
権限があれば一括ダウンロードができます
コンパイルメッセージ
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.Collections.Generic;
using System.Linq;
 
class Program
{
    static void Main()
    {
        int n = int.Parse(Console.ReadLine());
        var abs =
            (from j in Enumerable.Range(1, n)
             select Console.ReadLine().Trim().Split(' ')).ToArray();
        int m = int.Parse(Console.ReadLine());
        var xys =
            (from i in Enumerable.Range(1, m)
             let xy = Console.ReadLine().Trim().Split(' ')
             select new { I = i, X = int.Parse(xy[0]), Y = int.Parse(xy[1]) }).ToArray();
        Array.Sort(xys, (v0, v1) =>
        {
            if (v0.X != v1.X)
                return v0.X.CompareTo(v1.X);
            return -v0.Y.CompareTo(v1.Y);
        });
 
        var arr = new int[m+1];
 
        foreach (var ab in abs)
        {
            int a = int.Parse(ab[0]);
            int b = int.Parse(ab[1]);
 
            foreach (var v in xys)
            {
                if (v.X > a) break;
                if (v.Y >= b) ++arr[v.I];
            }
        }
 
        var ans = new List<int>{0};
        var max = 0;
 
        for (var i = 0; i <= m; ++i)
        {
            if (arr[i] == 0) continue;
            if (arr[i] < max) continue;
            if (arr[i] == max)
            {
                ans.Add(i);
                continue;
            }
 
            max = arr[i];
            ans = new List<int>{i};
 
        }
 
        foreach (var i in ans) Console.WriteLine(i);
    }
}
0