SRM 504 - unrated event
Problem Solving/TopCoder logs 2011. 4. 27. 22:49
어제 새벽에 열린 매치..
가뜩이나 축구하고와서 피곤한데.. 억지로 SRM 한판 했다..
근데 중간에 아레나에서 뭐라고 자꾸 에러나서 그냥 끄고 잤다.. -_-
아침에 확인해보니 역시.. unrated event..
뭐 이런 토론이 진행중이군..
http://apps.topcoder.com/forums/?module=Thread&threadID=706017&start=0
탑코더 아레나 똑바로 안만드냐..!!!
우리 방 결과.. 6등이면 나름 선전했네..
Level1 - MathContest
W와 B로 이루어진 string 에서 앞에서부터 하나씩 빼낼때 W 이면 남은 W를 B로, B를 W로 바꾸고, B 이면 남은 string 을 reverse 한다.. 작업이 모두 끝났을 때, B 를 몇번 뽑았는지..
이 문제의 트릭은.. 실제로 string 을 reverse 할 필요 없고 그냥 뒤에서부터 읽으면 된다.. 그리고 W <-> B 를 실제로 invert 할 필요 없고, 역시 W를 B로 B를 W로 생각하고 풀면 된다..
가뜩이나 축구하고와서 피곤한데.. 억지로 SRM 한판 했다..
근데 중간에 아레나에서 뭐라고 자꾸 에러나서 그냥 끄고 잤다.. -_-
아침에 확인해보니 역시.. unrated event..
뭐 이런 토론이 진행중이군..
http://apps.topcoder.com/forums/?module=Thread&threadID=706017&start=0
탑코더 아레나 똑바로 안만드냐..!!!
우리 방 결과.. 6등이면 나름 선전했네..
Level1 - MathContest
W와 B로 이루어진 string 에서 앞에서부터 하나씩 빼낼때 W 이면 남은 W를 B로, B를 W로 바꾸고, B 이면 남은 string 을 reverse 한다.. 작업이 모두 끝났을 때, B 를 몇번 뽑았는지..
이 문제의 트릭은.. 실제로 string 을 reverse 할 필요 없고 그냥 뒤에서부터 읽으면 된다.. 그리고 W <-> B 를 실제로 invert 할 필요 없고, 역시 W를 B로 B를 W로 생각하고 풀면 된다..
1 #include <iostream>
2 #include <cstdio>
3 #include <algorithm>
4 #include <vector>
5 #include <string>
6 using namespace std;
7 //#define min(x, y) ((x) > (y) ? (y) : (x))
8 //#define max(x, y) ((x) > (y) ? (x) : (y))
9 //#define INF 999999999
10 //#define EPS 1e-14
11
12 class MathContest {
13 public:
14
15 int countBlack(string ballSequence, int repetitions)
16 {
17 int i;
18 int l, r;
19 int cnt;
20 int fl1, fl2;
21 string str;
22 str = "";
23 for (i = 0; i < repetitions; i++) {
24 str = str + ballSequence;
25 }
26 fl1 = 0; // reverse
27 fl2 = 0;
28 l = 0;
29 r = str.size()-1;
30 cnt = 0;
31 while (l <= r) {
32 if (fl1 == 0) {
33 if (fl2 == 0) {
34 if (str[l] == 'W') {
35 fl1 = 1;
36 }
37 else {
38 fl2 = 1;
39 cnt++;
40 }
41 l++;
42 }
43 else if (fl2 == 1) {
44 if (str[l] == 'W') {
45 cnt++;
46 fl2 = 0;
47 }
48 else {
49 fl1 = 1;
50 }
51 l++;
52 }
53 }
54 else if (fl1 == 1) {
55 if (fl2 == 0) {
56 if (str[r] == 'W') {
57 fl1 = 0;
58 }
59 else {
60 fl2 = 1;
61 cnt++;
62 }
63 r--;
64 }
65 else if (fl2 == 1) {
66 if (str[r] == 'W') {
67 fl2 = 0;
68 cnt++;
69 }
70 else {
71 fl1 = 0;
72 }
73 r--;
74 }
75 }
76 }
77 return cnt;
78 }
79
80 };
2 #include <cstdio>
3 #include <algorithm>
4 #include <vector>
5 #include <string>
6 using namespace std;
7 //#define min(x, y) ((x) > (y) ? (y) : (x))
8 //#define max(x, y) ((x) > (y) ? (x) : (y))
9 //#define INF 999999999
10 //#define EPS 1e-14
11
12 class MathContest {
13 public:
14
15 int countBlack(string ballSequence, int repetitions)
16 {
17 int i;
18 int l, r;
19 int cnt;
20 int fl1, fl2;
21 string str;
22 str = "";
23 for (i = 0; i < repetitions; i++) {
24 str = str + ballSequence;
25 }
26 fl1 = 0; // reverse
27 fl2 = 0;
28 l = 0;
29 r = str.size()-1;
30 cnt = 0;
31 while (l <= r) {
32 if (fl1 == 0) {
33 if (fl2 == 0) {
34 if (str[l] == 'W') {
35 fl1 = 1;
36 }
37 else {
38 fl2 = 1;
39 cnt++;
40 }
41 l++;
42 }
43 else if (fl2 == 1) {
44 if (str[l] == 'W') {
45 cnt++;
46 fl2 = 0;
47 }
48 else {
49 fl1 = 1;
50 }
51 l++;
52 }
53 }
54 else if (fl1 == 1) {
55 if (fl2 == 0) {
56 if (str[r] == 'W') {
57 fl1 = 0;
58 }
59 else {
60 fl2 = 1;
61 cnt++;
62 }
63 r--;
64 }
65 else if (fl2 == 1) {
66 if (str[r] == 'W') {
67 fl2 = 0;
68 cnt++;
69 }
70 else {
71 fl1 = 0;
72 }
73 r--;
74 }
75 }
76 }
77 return cnt;
78 }
79
80 };
'Problem Solving > TopCoder logs' 카테고리의 다른 글
TCO11 R1 - 탈락 (0) | 2011.06.23 |
---|---|
SRM 509 !! (0) | 2011.06.09 |
SRM 507 - 나이스! (0) | 2011.05.30 |
TCO11 Qual2 (0) | 2011.05.20 |
TCO11 Qual1 (2) | 2011.05.15 |
SRM 503 흑흑 ㅠ_ㅠ;; (0) | 2011.04.18 |
SRM 501 (0) | 2011.04.01 |
SRM 498 - WTF!! (0) | 2011.02.27 |
SRM 496 (2) | 2011.02.02 |
SRM 491 - Blue 복귀.. (0) | 2010.12.21 |