개미가 마주치면 서로 반대로 튕겨나간다로 이해하지 말고 스쳐지나간다라고 이해하면 편하다.


그리고 삼거리의 중심에서 만나지 않는 이상 중심으로 가는 개미는 무조건 다음 길로 간다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;
 
typedef long long ll;
 
struct ant {
    ll x;
    int s, w;
    ant(int s = 0, ll x = 0int w = 0) : s(s), x(x), w(w) {}
};
 
bool cmp(const ant &a, const ant &b) {
    return a.x < b.x;
}
 
int n, b, cnt[3];
vector<ant> v;
char t;
ll l, ans, a;
map<ll, int> m;
 
int main() {
    scanf("%d%lld"&n, &l);
    for (int i = 0; i < n; i++) {
        scanf(" %c %lld %d"&t, &a, &b);
        v.push_back({ t - 'A',a,b });
        if (!b) {
            if (!m.count(a)) m[a] = 1;
            else m[a]++;
        }
        ans += b ? l - a : l + a;
    }
    sort(v.begin(), v.end(), cmp);
    for (int i = 0; i < n; i++) {
        if (v[i].w) cnt[v[i].s]++;
        else {
            if (m[v[i].x] > 1) cnt[v[i].s]++;
            else cnt[(v[i].s + 1) % 3]++;
        }
    }
    printf("%lld\n%d %d %d\n", ans, cnt[0], cnt[1], cnt[2]);
    return 0;
}
cs


'BOJ' 카테고리의 다른 글

1198 삼각형으로 자르기  (0) 2017.10.30
2149 암호 해독  (0) 2017.10.30
3159 전구  (0) 2017.10.30
5619 세 번째  (0) 2017.10.30
3758 KCPC  (0) 2017.10.30

+ Recent posts