본문 바로가기

Solutions/Mr.K's Solution

PKU 3077. Rounders. [판정:AC] #include #include void strInit( char a[] ) { int i; for( i = 0; i < 10; i++ ) { a[i] = '0'; } } void printStr( char a[] ) { int i; for( i = 9; a[i%10] != '\0'; i++ ) { if( i==9 && a[i]=='0' ) continue; else printf("%c", a[i%10]); } printf("\n"); } void rounding( char a[], int start, int type ) { int i; for( i = start; a[i] != '\0'; i++ ) { a[i] = '0'; } if( type == 1 ) a[start-1] += 1; } void ma.. 더보기
PKU 1804. Brainman. [판정:AC] #include #include void swap( int *x, int *y ) { int temp; temp = *x; *x = *y; *y = temp; } // with bubble sorting int ascendantOrdering( int *xAry, int length ) { int i; int j; int rtn = 0; for( i = 0; i i; j-- ) { if( xAry[j-1] > xAry[j] ) { swap( &xAry[j-1], &xAry[j] ); rtn++; } } } return rtn; } void main() { int cases; int terms; int i; int j; int *.. 더보기
PKU 2649. Factovisors. [판정:AC] 소스가 좀 길긴 한데 구현 자체는 그리 어렵지 않다고 생각합니다 #include #include int isPrime( int ); void factorize( int ); void factovisor( int, int ); // 1st row is primes, 2nd row is power of primes int primeSet[2][10] = {0}; int judge[10] = {0}; void main() { int n; int m; while( scanf("%d %d", &n, &m) != EOF ) { if( m == 0 ) printf("%d does not divide %d!\n", m, n); else factovisor( m, n ); } } int isPrime( int x ) {.. 더보기
PKU 1844. Sum. [판정:AC] #include int sigma( int k ) { return k*( k+1 )/2; } void main() { int s; int sum; int i; scanf("%d", &s); for( i = 1; ; i++ ) { sum = sigma(i); if( ( sum >= s ) && ( sum%2 == s%2 ) ) { printf("%d\n", i); break; } } } 이번 문제는 '저번에 비해' 너무 쉬워서 미칠 지경이군요 -_-; 풀이는 이렇습니다 우선 수열 {Sn}을 정의하는데, 'Sn = 1부터 n까지의 합'이라고 합시다 그러면 이 수열은 아래와 같은 값을 갖는데, 한가지 규칙이 있습니다 S1 = 1, S2 = 1 + 2 = 3, S3 = 1 + 2 + 3 = 6, S4 = 1 +.. 더보기
PKU 1145, UVa 112. Tree Summing. [판정:AC & TLE] #include #include #define SIZE 2000 int isInt( double x ) { if( floor(x) == ceil(x) ) return 1; else return 0; } int isInHere( int x, int here[] ) { int i; for( i = 0; here[i] != -1; i++ ) { if( here[i] == x ) return 1; } return 0; } void pullOut( int pullThis, double list[], int *endKey, int keyList[], int etcList[] ) { int i; int del = 0; for( i = pullThis; i < *endKey; i++ ) { list[ i-2 ] = l.. 더보기
PKU 3685. Matrix. [판정:WA] #include unsigned sigmaInc( unsigned ); unsigned sigmaDec( unsigned, unsigned ); unsigned sumOfGroup( unsigned, unsigned ); int rowIndex( unsigned, unsigned ); int columnIndex( unsigned, unsigned ); void main() { int trial; int i; unsigned dimension, searchOrder; scanf("%d", &trial); printf("\n"); /* skip a line */ for( i = 0; i < trial; i++ ) { unsigned j; unsigned beforeSum; double ithRow, jth.. 더보기
PKU 2017. Speed Limit. [판정:AC] #include int sd( int *p ) { scanf("%d", p); return *p; } void main() { int set, speed, hour, range, i; while( sd(&set) != -1 ) { range = 0, i = 0; for( ; set--; ) { scanf("%d%d", &speed, &hour); range += speed * ( hour-i ); i = hour; } printf("%d miles\n", range); } } 이번 문제도 좀 쉬운듯; 더보기
PKU 2027. No Brainer. [판정:AC] - 104B s(int*p){scanf("%d",p);return*p;}main(n,a,b){for(s(&n);n--;puts(s(&a) 더보기
PKU 2027. No Brainer. [판정:AC] n;a;b;main(){scanf("%d",&n);while(n--){scanf("%d%d",&a,&b);printf("%s BRAINS\n",a 0 ) { scanf("%d %d", &amount1, &amount2); if( amount1 < amount2 ) printf("NO BRAINS\n"); else printf("MMM BRAINS\n"); n--; } } 더보기
UVa 112, PKU 1145. Tree Summing. [판정:WA] #include #include #define SIZE 1000 typedef enum storeType { NONE, NUMBER, LETTER, BRANCH, LEAF } storeType; typedef struct { int nPart; char cPart; storeType status; } card; /* status의 내용을 바꿔주는 것만으로 int형과 char형을 자유자재로 다룰 수 있어서 앞·뒤 뒤집는게 쉬운 card에 비유, 디버깅이 불편하다는 것이 단점 */ void main() { int searchKey; char inputStr[ SIZE ]; card adjusted[ SIZE ]; card stack[ SIZE ]; card temp[ SIZE ]; int compare = .. 더보기