SRM 507 - 나이스!
Problem Solving/TopCoder logs 2011. 5. 30. 22:21
와우.. 이번매치에서 무려 rating +61 을 기록한 덕분에
거의 6개월만에 다시 Yellow 회복했다..~
이번 매치도 거의 망하는 분위기였는데.. 적극적으로 챌을 했던게 순위를 끌어올렸다..~
최근 2번의 매치에서 rating 100을 올렸다..
Level1 - CubeStickers
n개의 color 가 주어지고 이 중 6개를 뽑아서 cube를 칠할때 이웃한 면이 다른색으로 칠할 수 있는지..
주사위를 하나 가져다 놓고 생각해보자..
일단 color가 6가지 이상이면 무조건 가능하고..
최소 3가지 종류만 있어도 가능한 경우가 있다..
그런데 같은 color 가 2개까지는 유용하지만 3개 이상 있어봤자 소용이 없다..
이를 조합해서 대충 풀어보자..
나름 재밌는 문제..~
거의 6개월만에 다시 Yellow 회복했다..~
이번 매치도 거의 망하는 분위기였는데.. 적극적으로 챌을 했던게 순위를 끌어올렸다..~
최근 2번의 매치에서 rating 100을 올렸다..
Level1 - CubeStickers
n개의 color 가 주어지고 이 중 6개를 뽑아서 cube를 칠할때 이웃한 면이 다른색으로 칠할 수 있는지..
주사위를 하나 가져다 놓고 생각해보자..
일단 color가 6가지 이상이면 무조건 가능하고..
최소 3가지 종류만 있어도 가능한 경우가 있다..
그런데 같은 color 가 2개까지는 유용하지만 3개 이상 있어봤자 소용이 없다..
이를 조합해서 대충 풀어보자..
나름 재밌는 문제..~
1 #include <iostream>
2 #include <cstdio>
3 #include <algorithm>
4 #include <vector>
5 #include <string>
6 #include <set>
7 #include <map>
8 using namespace std;
9 //#define min(x, y) ((x) > (y) ? (y) : (x))
10 //#define max(x, y) ((x) > (y) ? (x) : (y))
11 //#define INF 999999999
12 //#define EPS 1e-14
13
14 class CubeStickers {
15 public:
16
17 string isPossible(vector <string> sticker)
18 {
19 int i;
20 int cnt, left;
21 set<string> ss;
22 map<string, int> mm;
23 map<string, int>::iterator it;
24 for (i = 0; i < sticker.size(); i++) {
25 ss.insert(sticker[i]);
26 if (mm.find(sticker[i]) == mm.end())
27 mm[sticker[i]] = 1;
28 else
29 mm[sticker[i]]++;
30 }
31 cnt = 0;
32 for (it = mm.begin(); it != mm.end(); it++) {
33 if (it->second >= 2)
34 cnt++;
35 }
36 printf("size = %d, cnt = %d\n", ss.size(), cnt);
37 left = 6-ss.size();
38 if (left <= 0)
39 return "YES";
40 if (cnt >= left)
41 return "YES";
42 return "NO";
43 }
44
45 };
2 #include <cstdio>
3 #include <algorithm>
4 #include <vector>
5 #include <string>
6 #include <set>
7 #include <map>
8 using namespace std;
9 //#define min(x, y) ((x) > (y) ? (y) : (x))
10 //#define max(x, y) ((x) > (y) ? (x) : (y))
11 //#define INF 999999999
12 //#define EPS 1e-14
13
14 class CubeStickers {
15 public:
16
17 string isPossible(vector <string> sticker)
18 {
19 int i;
20 int cnt, left;
21 set<string> ss;
22 map<string, int> mm;
23 map<string, int>::iterator it;
24 for (i = 0; i < sticker.size(); i++) {
25 ss.insert(sticker[i]);
26 if (mm.find(sticker[i]) == mm.end())
27 mm[sticker[i]] = 1;
28 else
29 mm[sticker[i]]++;
30 }
31 cnt = 0;
32 for (it = mm.begin(); it != mm.end(); it++) {
33 if (it->second >= 2)
34 cnt++;
35 }
36 printf("size = %d, cnt = %d\n", ss.size(), cnt);
37 left = 6-ss.size();
38 if (left <= 0)
39 return "YES";
40 if (cnt >= left)
41 return "YES";
42 return "NO";
43 }
44
45 };
'Problem Solving > TopCoder logs' 카테고리의 다른 글
SRM 529 (0) | 2012.01.15 |
---|---|
SRM 521 (0) | 2011.10.24 |
SRM 511 (0) | 2011.07.04 |
TCO11 R1 - 탈락 (0) | 2011.06.23 |
SRM 509 !! (0) | 2011.06.09 |
TCO11 Qual2 (0) | 2011.05.20 |
TCO11 Qual1 (2) | 2011.05.15 |
SRM 504 - unrated event (0) | 2011.04.27 |
SRM 503 흑흑 ㅠ_ㅠ;; (0) | 2011.04.18 |
SRM 501 (0) | 2011.04.01 |