250 - 결과 Chanllenged
아침에 일어나 확인해보니 챌당했다 ㅠㅠ.. 지금까지 div1은 항상 한가지 예외처리(..)를 하지 않아서 당했었는데 일단 다시 풀어보았다.
다시푼 코드
System Test통과. 엇.?
제출했던 코드를 보니.. d가 1일경우 중복처리를 안했다 orz...
아침에 일어나 확인해보니 챌당했다 ㅠㅠ.. 지금까지 div1은 항상 한가지 예외처리(..)를 하지 않아서 당했었는데 일단 다시 풀어보았다.
다시푼 코드
class CountingSeries { public: bool isDuplicated(long long n, long long a, long long b){ if(a > n) return false; return (n-a)%b == 0; } long long countThem(long long a, long long b, long long c, long long d, long long upperBound) { long long result = 0; if(a <= upperBound){ result = (upperBound-a)/b+1; } if(d == 1){if(c <= upperBound && isDuplicated(c, a, b) == false) result++; }else{ while(c <= upperBound){ if(isDuplicated(c, a, b) == false) result++; c *= d; } } return result; }
};
System Test통과. 엇.?
제출했던 코드를 보니.. d가 1일경우 중복처리를 안했다 orz...
class CountingSeries { public: long long countThem(long long a, long long b, long long c, long long d, long long upperBound) { long long maxX = upperBound < a ? 0 : (upperBound-a)/b+1; long long maxY = 0; long long ex = c; if(d == 1) maxY = upperBound >= c ? 1 : 0; else{ while(ex <= upperBound) { if(ex < a || (ex-a)%b != 0){ printf("O : %lld\n", ex); maxY++; }else{ printf("X : %lld\n", ex); } ex *= d; } } return maxX+maxY; }
};
