흠.. 오랜만에 아침 10시 SRM을 참여했다.. 결과는 망했다.. ㅠ_ㅠ 요즘들어 계속 문제가 맘에안들어.. 사실.. 이번 500점짜리 문제는 진짜로 문제가 많다.. 다시 gray로 떨어졌고.. 역대 최저 rating을 기록했다.. 언제쯤 1군에 올라갈수있을까.. 실력을 부지런히 쌓아야겠다..

방 10등 전체 261등..

사용자 삽입 이미지
챌 안하고 가만이만있어도 중간은 유지했는데.. ㅠ_ㅠ

사용자 삽입 이미지
역대 최저 rating ㅠ_ㅠ

[250] TheEquation
input으로 X, Y, P 가 주어지고.. (a*x + b*y) mod p = 0 을 만족하는 a, b에 대해서 (a+b)의 최소값을 구하는 문제..

a와 b에대허서 각각 1부터p까지 수를 다 대입해보았다.. upper bound를 어디에 놓아야할지 몰라서 그냥 p까지했는데.. 나중에 생각해보니 맞다.. 왜냐하면 p*x + p*y 는 항상 p로 나누어떨이지기 때문이다..

      1 #include <iostream>
      2 #include <cstdio>
      3 #include <algorithm>
      4 #include <vector>
      5 #include <string>
      6 using namespace std;
      7
      8 class TheEquation {
      9 public:
     10
     11 int leastSum(int X, int Y, int P)
     12 {
     13     int a, b;
     14     int sum = 999999;
     15     for (a = 1; a <= 1000; a++) {
     16         for (b = 1; b <= 1000; b++) {
     17             if ((a*X + b*Y) % P == 0) {
     18                 if (a+b < sum)
     19                     sum = a+b;
     20             }
     21         }
     22     }
     23     return sum;
     24 }
     25
     26 };




[500] StringFragmentation
text가 주어지고 panel에 채우려고할때 최대로 쓸수있는 font size를 구하는문제..

정말 쓰레기 문제이다.. 이문제는 sys fail이었는데.. 그 1차적인 이유는 code중에 width와 height를 바꿔서 코딩했다.. ㅠ_ㅠ 그 한줄을 고치니 AC이 나오더라.. ㅠ_ㅠ 젠장.. 예전에는 이런 실수를 안했는데.. ICPC은퇴한이후로 실력이 금하강하고있다.. ㅠ_ㅠ 아.. 왜이러지.. 그러나 더욱 경악을 금치못했던 사실은 문제를 잘못이해하고있었다는 것이다..

헐.. 근데 문제는 문제를 잘못이해한사람이 나뿐만 아닌데.. 그럼에도불구하고 부실한 test case에의해서 잘못짜고도 system test를 통과한사람이 무지하게많다는것이다..

이문제에대해서 환상의 챌 데이타를 만들었는데.. 문제를 잘못이해한바람에 3개나 실패하고말았다.. ㅠ_ㅠ
여러모로 속상한 문제..

예전에 풀어서 무슨문제인지도 잘 기억이 안나지만.. 일단 코드를 올려보자

  1 #include <iostream>
  2 #include <cstdio>
  3 #include <algorithm>
  4 #include <vector>
  5 #include <string>
  6 using namespace std;
  7
  8 class StringFragmentation {
  9 public:
 10
 11 int largestFontSize (string text, int width, int height)
 12 {
 13     char buf[1000];
 14     char* ptr;
 15     char list[100][50];
 16     int n;
 17     int i, j, k;
 18     int line, fl, temp;
 19     strcpy(buf, text.c_str());
 20     n = 0;
 21     ptr = strtok(buf, " ");
 22     while (ptr != NULL) {
 23         strcpy(list[n], ptr);
 24         n++;
 25         ptr = strtok(NULL, " ");
 26     }
 27
 28     for (i = 10000; i > 7; i--) {
 29         if (i*2 > height || i+2 > width) {
 30             continue;
 31         }
 32         fl = 1;
 33         line = 0;
 34         j = 0;
 35         while (j < n) {
 36             temp = 0;
 37             k = 0;
 38             while (temp * (i+2) <= width && j < n) {
 39                 if (k == 0) {
 40                     if ((temp+strlen(list[j])) * (i+2) > width)
 41                         break;
 42                     temp += strlen(list[j]);
 43                 }
 44                 else {
 45                     if ((temp+strlen(list[j])+1) * (i+2) > width)
 46                         break;
 47                     temp += strlen(list[j]) + 1;
 48                 }
 49                 j++;
 50                 k++;
 51             }
 52             line++;
 53             printf("i = %d, 너비......%d\n",i, temp * (i+2));
 54             if (k == 0) {
 55                 fl = 0;
 56                 break;
 57             }
 58         }
 59         if (line * i * 2 > height) {
 60             fl = 0;
 61             continue;
 62         }
 63         if (fl == 1)
 64             break;
 65     }
 66     printf("i = %d, 높이.. %d\n", i, line*2*i);
 67     if (i <= 7)
 68         return -1;
 69     return i;
 70 }
 71
 72 };



[1000]
이문제는 input으로 직사각형과 선분들이 주어지고 선분 끝점을 포함하는 사각형의 넓이의 합과 끝점은 포함하지않지만 선분과 사각형 외각과 교점이 있는 사각형의 넓이의 합을 구하는 문제..

단순 선분교차 문제인데.. 시간이 없어서 못풀었다.. 이문제를 첨부터 시도할껄그랬나..

'Problem Solving > TopCoder logs' 카테고리의 다른 글

TopCoder SRM380 DIV2 (완료)  (0) 2007.12.08
TopCoder SRM 379 Div2 (완료)  (0) 2007.11.29
TopCoder SRM378 DIV2 (완료)  (0) 2007.11.21
TopCoder SRM375 DIV2 (Complete)  (6) 2007.11.11
TopCoder SRM374 DIV2  (3) 2007.11.07
TopCoder SRM 372 Div 2  (8) 2007.10.18
TopCoder SRM 371 Div2 (완료)  (2) 2007.10.14
TopCoder SRM 370 Div2  (0) 2007.10.14
TopCoder SRM369 DIV2  (6) 2007.10.05
TopCoder SRM 368 Div 1  (0) 2007.10.03

to Top