Submission #1355844


Source Code Expand

#include <cmath>
#include <iostream>

bool checkDegree(int deg, double low, double high) {
  return (low <= deg && high > deg);
}

std::string translateDegreeToDirection(int deg) {
  if (checkDegree(deg, 112.5, 337.5)) {
    return "NNE";
  } else if (checkDegree(deg, 337.5, 562.5)) {
    return "NE";
  } else if (checkDegree(deg, 562.5, 787.5)) {
    return "ENE";
  } else if (checkDegree(deg, 587.5, 1012.5)) {
    return "E";
  } else if (checkDegree(deg, 1012.5, 1237.5)) {
    return "ESE";
  } else if (checkDegree(deg, 1237.5, 1462.5)) {
    return "SE";
  } else if (checkDegree(deg, 1462.5, 1687.5)) {
    return "SSE";
  } else if (checkDegree(deg, 1687.5, 1912.5)) {
    return "S";
  } else if (checkDegree(deg, 1912.5, 2137.5)) {
    return "SSW";
  } else if (checkDegree(deg, 2137.5, 2362.5)) {
    return "SW";
  } else if (checkDegree(deg, 2362.5, 2587.5)) {
    return "WSW";
  } else if (checkDegree(deg, 2587.5, 2812.5)) {
    return "W";
  } else if (checkDegree(deg, 2812.5, 3037.5)) {
    return "WNW";
  } else if (checkDegree(deg, 3037.5, 3262.5)) {
    return "NW";
  } else if (checkDegree(deg, 3262.5, 3487.5)) {
    return "NNW";
  } else {
    return "N";
  }
}

double round2(double v) {
  v *= 10;
  return (std::round(v) / 10.0);
}

bool checkSpeed(const double v, double lower, double upper) {
  const double delta = 1e-3;
  lower -= delta;
  upper += delta;
  return (v > lower) && (v < upper);
}

std::string translateDistanceToWind(double dis) {
  const double speed = round2(dis / 60.0);

  if (checkSpeed(speed, 0.0, 0.2)) {
    return "0";
  } else if (checkSpeed(speed, 0.3, 1.5)) {
    return "1";
  } else if (checkSpeed(speed, 1.6, 3.3)) {
    return "2";
  } else if (checkSpeed(speed, 3.4, 5.4)) {
    return "3";
  } else if (checkSpeed(speed, 5.5, 7.9)) {
    return "4";
  } else if (checkSpeed(speed, 8.0, 10.7)) {
    return "5";
  } else if (checkSpeed(speed, 10.8, 13.8)) {
    return "6";
  } else if (checkSpeed(speed, 13.9, 17.1)) {
    return "7";
  } else if (checkSpeed(speed, 17.2, 20.7)) {
    return "8";
  } else if (checkSpeed(speed, 20.8, 24.4)) {
    return "9";
  } else if (checkSpeed(speed, 24.5, 28.4)) {
    return "10";
  } else if (checkSpeed(speed, 28.5, 32.6)) {
    return "11";
  } else {
    return "12";
  }
}

int main(int argc, char* argv[]) {
  int deg;
  std::cin >> deg;
  int dis;
  std::cin >> dis;

  // outputs
  std::string W = translateDistanceToWind((double) dis);
  std::string direction;
  if (W == "0") {
    direction = "C";
  } else {
    direction = translateDegreeToDirection(deg);
  }

  std::cout << direction << " " << W << std::endl;
}

Submission Info

Submission Time
Task C - 風力観測
User ozaw
Language C++14 (GCC 5.4.1)
Score 100
Code Size 2743 Byte
Status AC
Exec Time 3 ms
Memory 384 KB

Judge Result

Set Name all
Score / Max Score 100 / 100
Status
AC × 66
Set Name Test Cases
all 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 00_sample_06.txt, 00_sample_07.txt, 00_sample_08.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 3 ms 384 KB
00_sample_02.txt AC 1 ms 256 KB
00_sample_03.txt AC 1 ms 256 KB
00_sample_04.txt AC 1 ms 256 KB
00_sample_05.txt AC 1 ms 256 KB
00_sample_06.txt AC 1 ms 256 KB
00_sample_07.txt AC 1 ms 256 KB
00_sample_08.txt AC 1 ms 256 KB
test_01.txt AC 1 ms 256 KB
test_02.txt AC 1 ms 256 KB
test_03.txt AC 1 ms 256 KB
test_04.txt AC 1 ms 256 KB
test_05.txt AC 1 ms 256 KB
test_06.txt AC 1 ms 256 KB
test_07.txt AC 1 ms 256 KB
test_08.txt AC 1 ms 256 KB
test_09.txt AC 1 ms 256 KB
test_10.txt AC 1 ms 256 KB
test_11.txt AC 1 ms 256 KB
test_12.txt AC 1 ms 256 KB
test_13.txt AC 1 ms 256 KB
test_14.txt AC 1 ms 256 KB
test_15.txt AC 1 ms 256 KB
test_16.txt AC 1 ms 256 KB
test_17.txt AC 1 ms 256 KB
test_18.txt AC 1 ms 256 KB
test_19.txt AC 1 ms 256 KB
test_20.txt AC 1 ms 256 KB
test_21.txt AC 1 ms 256 KB
test_22.txt AC 1 ms 256 KB
test_23.txt AC 1 ms 256 KB
test_24.txt AC 1 ms 256 KB
test_25.txt AC 1 ms 256 KB
test_26.txt AC 1 ms 256 KB
test_27.txt AC 1 ms 256 KB
test_28.txt AC 1 ms 256 KB
test_29.txt AC 1 ms 256 KB
test_30.txt AC 1 ms 256 KB
test_31.txt AC 1 ms 256 KB
test_32.txt AC 1 ms 256 KB
test_33.txt AC 1 ms 256 KB
test_34.txt AC 1 ms 256 KB
test_35.txt AC 1 ms 256 KB
test_36.txt AC 1 ms 256 KB
test_37.txt AC 1 ms 256 KB
test_38.txt AC 1 ms 256 KB
test_39.txt AC 1 ms 256 KB
test_40.txt AC 1 ms 256 KB
test_41.txt AC 1 ms 256 KB
test_42.txt AC 1 ms 256 KB
test_43.txt AC 1 ms 256 KB
test_44.txt AC 1 ms 256 KB
test_45.txt AC 1 ms 256 KB
test_46.txt AC 1 ms 256 KB
test_47.txt AC 1 ms 256 KB
test_48.txt AC 1 ms 256 KB
test_49.txt AC 1 ms 256 KB
test_50.txt AC 1 ms 256 KB
test_51.txt AC 1 ms 256 KB
test_52.txt AC 1 ms 256 KB
test_53.txt AC 1 ms 256 KB
test_54.txt AC 1 ms 256 KB
test_55.txt AC 1 ms 256 KB
test_56.txt AC 1 ms 256 KB
test_57.txt AC 1 ms 256 KB
test_58.txt AC 1 ms 256 KB