2010年5月4日火曜日

TopCoder SRM 469

SRM469(5/4 20:00~22:00)
スーパーボッコボコタイム.

・TheMoviesLevelOneDivOne(DIV1 Easy)
大体の解法は少し考えれば分かりました.
提出したソースがこちら.
  1. import java.util.*;  
  2. import java.lang.*;  
  3. import java.math.*;  
  4. public class TheMoviesLevelOneDivOne {  
  5.  public long find(int n, int m, int[] row, int[] seat) {  
  6.   int len=seat.length;  
  7.      for (int i = 0; i < len - 1; i++) {  
  8.          for (int j = len - 1; j < i; j--) {  
  9.              if(row[j-1]>row[j]||(row[j-1]==row[i]&&seat[j-1]>seat[j])){  
  10.               int t=row[j-1];  
  11.               row[j-1]=row[j];  
  12.               row[j]=t;  
  13.               t=seat[j-1];  
  14.               seat[j-1]=seat[j];  
  15.               seat[j]=t;  
  16.              }  
  17.              }  
  18.         }  
  19.         long ret=(long)(m-1)*n;  
  20.         for(int j=0;j<len;){  
  21.          int i;  
  22.          for(i=0;j+i<len&&row[j+i]==row[j]&&seat[j+i]==seat[j]+i;i++)  
  23.           ;  
  24.          ret-=i+1;  
  25.          if(seat[j]==1)  
  26.           ret++;  
  27.          if(seat[j+i-1]==m)  
  28.           ret++;  
  29.          j+=i;  
  30.         }  
  31.         return ret;  
  32.           
  33.  }  
  34. }  
  35.   
  36.   
  37. // Powered by FileEdit  
  38. // Powered by TZTester 1.01 [25-Feb-2003]  
  39. // Powered by CodeProcessor  
  40.   
  41.   
  42. // Powered by FileEdit  
  43. // Powered by TZTester 1.01 [25-Feb-2003]  
  44. // Powered by CodeProcessor  

全体的に汚いです.そして9行目のrow[i]はrow[j]でした.焦っていたため,訂正し忘れました.
このミスによってFailed System Test.

Result:Failed System Test(0p)

・TheMoviesLevelTwoDivOne(DIV1 Normal)
\(^o^)/
Result:Opend(0p)

・TheMoviesLevelThreeDivOne(DIV1 Hard)
\(^o^)/
Result:Opened(0p)

・Challenges
0p

・Rating
1292->1226
次落ちたらDiv2降格は免れません.

0 件のコメント: