きままにものづくり

日々の気付いたことなんかを書いてます。

ARCのA問題を解いてみた ~その2~

こんにちは、even_ekoです。
今日は、スプリントレビューがありました。開発の進め方がうまくいきそうなアルゴリズムを試して検証という形なので、
予定がたてにくいです...
そして、今も壁にぶつかってる状態なので焦りを感じます。

今日も、昨日に引き続きARCの解答を載せます。

#003のA問題

#include <iostream>

int main(int argc, constchar * argv[])
{
    double num_of_unit;
    char evaluation_of_unit[100];
    double sum_of_evaluation = 0;
    double GPA = 0;
    
    std::cin >> num_of_unit;
    for (int i=0; i<num_of_unit; i++) {
        std::cin >> evaluation_of_unit[i];
        switch (evaluation_of_unit[i]) {
            case'A' : 
                sum_of_evaluation += 4.0;
                break;
            case'B':
                sum_of_evaluation += 3.0;
                break;
            case'C':
                sum_of_evaluation += 2.0;
                break;
            case'D':
                sum_of_evaluation += 1.0;
                break;
            case'F':
                sum_of_evaluation += 0;
                break;
        }
    }
    
    GPA =  sum_of_evaluation/num_of_unit;
    
    std::cout.precision(10);
    std::cout << GPA << '\n';
    return0;
}

#004のA問題

#include <iostream>
#include <vector>
#include <cmath>

struct point {
    int x;
    int y;
};

float calcDist(point current,point past)
{
    returnsqrtf((current.x-past.x)*(current.x-past.x)+(current.y-past.y)*(current.y-past.y));
}

int main(int argc, constchar * argv[])
{
    std::cout.precision(8);
    int N;
    float dist;
    float max_dist = 0;
    
    std::cin >> N;
    std::vector <point> v(N);
    
    for (int i=0; i<N; i++) {
        std::cin >> v[i].x;
        std::cin >> v[i].y;
    }
   
    for (int i = 0; i < N-1; i++) {
        for (int j = i; j <N; j++) {
            dist = calcDist(v[i], v[j]);
            if (dist > max_dist) 
                max_dist = dist;
        }
    }
    
    std::cout << max_dist << '\n';

    return0;
}