ABC 001

abc001.contest.atcoder.jp

A問題

#include <bits/stdc++.h>
 
#define REP(i,n) for(int i=0; i<(int)(n); ++i)
#define FOR(i,k,n) for(int i=(k);i<(int)(n);++i)
typedef long long int ll;
using namespace std;
 
int main(void) {
    int a, b;
    cin >> a >> b;
    cout << a-b << endl;
}

Submission #1024112 - AtCoder Beginner Contest 001 | AtCoder

B問題

#include <bits/stdc++.h>
 
#define REP(i,n) for(int i=0; i<(int)(n); ++i)
#define FOR(i,k,n) for(int i=(k);i<(int)(n);++i)
typedef long long int ll;
using namespace std;

int main(void) {
    int m;
    cin >> m;
    int VV;
    if(m < 100) VV = 0;
    else if(m <= 5000) VV = m*10/1000.0;
    else if(m >= 6000 && m <= 30000) VV = m/1000.0+50;
    else if(m >= 35000 && m <= 70000) VV = (m/1000.0-30)/5.0 + 80;
    else if(m >= 70000) VV = 89;
    printf("%02d\n", VV);
}

Submission #1024109 - AtCoder Beginner Contest 001 | AtCoder

C問題

やるだけなんだけど、バグる。

#include <bits/stdc++.h>
 
#define REP(i,n) for(int i=0; i<(int)(n); ++i)
#define FOR(i,k,n) for(int i=(k);i<(int)(n);++i)
typedef long long int ll;
using namespace std;
 
int main(void) {
    int Deg, Dis;
    string a;
    int b;
    cin >> Deg >> Dis;
 
    int I = (Dis/6.0 + 0.5);
    double D = double(I) / 10.0;
 
    if     (D >= 0.0 && D <= 0.2)          a = "C";
    else if(Deg >= 112.5 && Deg < 337.5)   a = "NNE";
    else if(Deg >= 337.5 && Deg < 562.5)   a = "NE";
    else if(Deg >= 562.5 && Deg < 787.5)   a = "ENE";
    else if(Deg >= 787.5 && Deg < 1012.5)  a = "E";
    else if(Deg >= 1012.5 && Deg < 1237.5) a = "ESE";
    else if(Deg >= 1237.5 && Deg < 1462.5) a = "SE";
    else if(Deg >= 1462.5 && Deg < 1687.5) a = "SSE";
    else if(Deg >= 1687.5 && Deg < 1912.5) a = "S";
    else if(Deg >= 1912.5 && Deg < 2137.5) a = "SSW";
    else if(Deg >= 2137.5 && Deg < 2362.5) a = "SW";
    else if(Deg >= 2362.5 && Deg < 2587.5) a = "WSW";
    else if(Deg >= 2587.5 && Deg < 2812.5) a = "W";
    else if(Deg >= 2812.5 && Deg < 3037.5) a = "WNW";
    else if(Deg >= 3037.5 && Deg < 3262.5) a = "NW";
    else if(Deg >= 3262.5 && Deg < 3487.5) a = "NNW";
    else                                   a = "N";
 
    if     (D >= 0.0 && D <= 0.2)   b = 0;
    else if(D >= 0.3 && D <= 1.5)   b = 1;
    else if(D >= 1.6 && D <= 3.3)   b = 2;
    else if(D >= 3.4 && D <= 5.4)   b = 3;
    else if(D >= 5.5 && D <= 7.9)   b = 4;
    else if(D >= 8.0 && D <= 10.7)  b = 5;
    else if(D >= 10.8 && D <= 13.8) b = 6;
    else if(D >= 13.9 && D <= 17.1) b = 7;
    else if(D >= 17.2 && D <= 20.7) b = 8;
    else if(D >= 20.8 && D <= 24.4) b = 9;
    else if(D >= 24.5 && D <= 28.4) b = 10;
    else if(D >= 28.5 && D <= 32.6) b = 11;
    else if(D >= 32.7)              b = 12;
    cout << a << " " << b << endl;
}

Submission #1024104 - AtCoder Beginner Contest 001 | AtCoder

D問題

いもす法

#include <bits/stdc++.h>
 
#define REP(i,n) for(int i=0; i<(int)(n); ++i)
#define FOR(i,k,n) for(int i=(k);i<(int)(n);++i)
typedef long long int ll;
using namespace std;
 
int main(void) {
    int N, S, E;
    cin >> N;
    vector<int> record(24*12+1, 0);
    REP(i, N) {
        scanf("%d-%d", &S, &E);
        record[(S/100)*12 + (S%100)/5] += 1;
        record[(E/100)*12 + (E%100)/5 + ((E%100)%5 > 0 ? 1 : 0)] -= 1;
    }
    int t = 0;
    int start_time = 0;
    REP(i, record.size()) {
        if(t == 0 && record[i] > 0) {
            printf("%02d%02d-", i/12, (i%12) * 5);
        }
        if(t > 0 && t + record[i] == 0) {
            printf("%02d%02d\n", i/12, (i%12) * 5);
        }
        t += record[i];
    }
}

Submission #1024090 - AtCoder Beginner Contest 001 | AtCoder