SRM 509 !!
Problem Solving/TopCoder logs 2011. 6. 9. 23:29
가깟으로 500을 종료 직전에 submit 했는데.. 챌 당해서 마음이 아팠다..
다들 빨리 푼 250을 늦게 풀어서 다시 blue 로 복귀하는줄 알았는데.. 오히려 rating 이 올랐다..
흠.. 그러고보니 한국사람중에 500을 푼 사람이 아무도 없다.. 쉽지 않은 문제였군..
어쨋거나 Yellow 1차 방어전 성공..~
Level1 - LuckyRemainder
super(x) = x에서 임의의 digit 몇개를 빼서 만들수 있는수를 모두 더한 수..
예를 들어 x = 123 이라고 하면
super(123) = 123 + 12 + 23 + 13 + 1 + 2 + 3 = 177 이다.
x 가 주어질때, super(x) % 9 구하기..
1) x % 9 = (x의 각 digit 의 합) % 9 <== 맞나???
2) super(x) 의 모든 set 의 원소를 구하면 각 digit 은 2^(digit개수-1) 개가 나온다.. 이걸 다 더하면 됨..
코드는 짧지만 그닥 빨리 풀 수 있는 문제는 아니었는데.. 249 점 맞은 사람은 뭐임??
다들 빨리 푼 250을 늦게 풀어서 다시 blue 로 복귀하는줄 알았는데.. 오히려 rating 이 올랐다..
흠.. 그러고보니 한국사람중에 500을 푼 사람이 아무도 없다.. 쉽지 않은 문제였군..
어쨋거나 Yellow 1차 방어전 성공..~
Level1 - LuckyRemainder
super(x) = x에서 임의의 digit 몇개를 빼서 만들수 있는수를 모두 더한 수..
예를 들어 x = 123 이라고 하면
super(123) = 123 + 12 + 23 + 13 + 1 + 2 + 3 = 177 이다.
x 가 주어질때, super(x) % 9 구하기..
1) x % 9 = (x의 각 digit 의 합) % 9 <== 맞나???
2) super(x) 의 모든 set 의 원소를 구하면 각 digit 은 2^(digit개수-1) 개가 나온다.. 이걸 다 더하면 됨..
코드는 짧지만 그닥 빨리 풀 수 있는 문제는 아니었는데.. 249 점 맞은 사람은 뭐임??
1 #include <iostream>
2 #include <cstdio>
3 #include <algorithm>
4 #include <vector>
5 #include <string>
6 #include <queue>
7 using namespace std;
8 //#define min(x, y) ((x) > (y) ? (y) : (x))
9 //#define max(x, y) ((x) > (y) ? (x) : (y))
10 //#define INF 999999999
11 //#define EPS 1e-14
12
13 class LuckyRemainder {
14 public:
15
16 int getLuckyRemainder(string X)
17 {
18 int i;
19 int len;
20 int sum;
21 len = X.size();
22 sum = 0;
23 for (i = 0; i < X.size(); i++) {
24 sum += X[i]-'0';
25 sum %= 9;
26 }
27 for (i = 0; i < len-1; i++) {
28 sum *= 2;
29 sum %= 9;
30 }
31 return sum % 9;
32 }
33
34 };
2 #include <cstdio>
3 #include <algorithm>
4 #include <vector>
5 #include <string>
6 #include <queue>
7 using namespace std;
8 //#define min(x, y) ((x) > (y) ? (y) : (x))
9 //#define max(x, y) ((x) > (y) ? (x) : (y))
10 //#define INF 999999999
11 //#define EPS 1e-14
12
13 class LuckyRemainder {
14 public:
15
16 int getLuckyRemainder(string X)
17 {
18 int i;
19 int len;
20 int sum;
21 len = X.size();
22 sum = 0;
23 for (i = 0; i < X.size(); i++) {
24 sum += X[i]-'0';
25 sum %= 9;
26 }
27 for (i = 0; i < len-1; i++) {
28 sum *= 2;
29 sum %= 9;
30 }
31 return sum % 9;
32 }
33
34 };
'Problem Solving > TopCoder logs' 카테고리의 다른 글
TCO12 R1A - 606등 -_-;; (0) | 2012.04.01 |
---|---|
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 507 - 나이스! (0) | 2011.05.30 |
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 |