Codeforces 677A Vanya and Fence Vanya跟柵欄

難易度 : 800

英文原文如下

Vanya and his friends are walking along the fence of height h and they do not want the guard to notice them. In order to achieve this the height of each of the friends should not exceed h. If the height of some person is greater than h he can bend down and then he surely won’t be noticed by the guard. The height of the i-th person is equal to ai.

Consider the width of the person walking as usual to be equal to 1, while the width of the bent person is equal to 2. Friends want to talk to each other while walking, so they would like to walk in a single row. What is the minimum width of the road, such that friends can walk in a row and remain unattended by the guard?

中文翻譯

Vanya 跟他的朋友正在沿著高度為  h 的柵欄走路,而且他們不想要被警衛注意到他們,為了要達到這件事每一位朋友不能超過 h 的高度。要是某人的高度超過 h ,他可以彎腰這樣他就不會被警衛注意到了。第 i 位朋友的身高等於  ai

假設一個人平常走路的寬度為 1 ,而彎腰時則為2。

輸入

The first line of the input contains two integers n and h (1 ≤ n ≤ 1000, 1 ≤ h ≤ 1000) — the number of friends and the height of the fence, respectively.

The second line contains n integers ai (1 ≤ ai ≤ 2h), the i-th of them is equal to the height of the i-th person.

輸入的第一行包含了兩個整數 n 跟 h (1 ≤ n ≤ 1000, 1 ≤ h ≤ 1000) — 分別是朋友的數量以及柵欄的高度。

第二行包含了 n 個整數 ai (1 ≤ ai ≤ 2h),第 i 位代表著第 i 個朋友的身高。

輸出

Print a single integer — the minimum possible valid width of the road.

印出一個整數 — 道路最小的寬度。

範例

輸入3 7
4 5 14
輸出4
輸入6 1
1 1 1 1 1 1
輸出6
輸入6 5
7 6 8 9 10 5
輸出11

解題思路

只要單純地對全部朋友的身高迴圈並計算,就可以得到結果了。

C#解決方案

方案1

string[]arr = Console.ReadLine().Split(' '); //split by space
//int n = int.Parse(arr[0]); //number of friends >> unused
int h = int.Parse(arr[1]); //height of the fence


string[]arr2 = Console.ReadLine().Split(' '); //split by space

int width = 0;

foreach(var item in arr2){
    var tmp = int.Parse(item);
    width += tmp>h ? 2 : 1;
}

Console.WriteLine(width);

註解到的那行是朋友的數量,但因為用不到 (因為直接對整個array迴圈,不管他有幾個朋友)

Java解決方案

方案1

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String[] arr = scanner.nextLine().split(" ");
        
        int n = Integer.parseInt(arr[0]);    
        int h = Integer.parseInt(arr[1]);  
        
        
        String[]arr2 = scanner.nextLine().split(" "); //split by space

        int width = 0;
        
        for(String friendHeight : arr2){
            int tmp = Integer.parseInt(friendHeight);
            width += tmp>h ? 2 : 1;
        }
        
        System.out.println(width);
    }
}

結論

🧡如果文章有幫上你的忙,那是我的榮幸

🧡收藏文章或幫我點個廣告,那都是對我的支持

✅如有任何疑問,歡迎透過留言或messenger讓我知道 !

題目連結 : Problem – 677A – Codeforces

一些其他的Codeforces文章

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *