본문 바로가기

Solutions/Mr.K's Solution

PKU 3074. Sudoku. [판정:TLE] ㅋㅋㅋ 너무 정석대로 풀었나 뭔가 빨리 돌리는 방법이 있을텐뎈ㅋ #include using namespace std; void zeroset( int ary[][9] ); int numfind( int ary[][9], int bry[][9], int wtf ); int find[10]; // 숫자 k(k번째 원소)를 몇개나 찾았는가에 해당하는 배열 int main() { char str[90]; int a[9][9]; // 풀어야되는 스도쿠 int b[9][9]; // 메모지 int i, j; int temp; while(1) { gets(str); if( strcmp( str, "end" ) == 0 ) { break; } for( i = 0; i 더보기
PKU 3364. Black and white painting. [판정:AC] 사뿐하게 AC 어려운 문제인줄 알았는데 아니었구만 :) #include using namespace std; int main() { int n, m, c; int temp; cin >> n >> m >> c; while( (n != 0) || (m != 0) || (c != 0) ) { temp = (n - 7) * (m - 7); if( (temp % 2 == 1) && (c == 1) ) { cout m >> c; } return 0; } 더보기
PKU 3132. Sum of Different Primes. [판정:TLE] 소점프건은 들보의 코드를 꼼꼼히 읽어보지 않은 내 실수였소 -_- 대충 설명해놓은 뉘앙스라 좀 찜찜하지만, 어쨌든 저게 최상의 풀이인 것 같아 난 손떼기로 ㅋ… ( 일단은 AC 받았기 때문이기도 하고, 가끔은 내가 쓴 코드지만 건드릴 엄두가 안난다 ㅋㅋㅋ ) { 1000, 10 }에 대한 답을 출력하는데 1분 이상, 5분 이하의 시간이 소요되는듯// ( 엔터쳐놓고 잠깐 보고있다가 이닦고 왔더니 답이 출력되어있어서 그렇게 추정 ) 일단 현재 코드는 recursion으로 쓴 상태이고, { 1000, 10 }에 대한 답이 잘 나오는 것으로 보아 이 recursion을 iteration으로 잘 바꾸면 AC 받을듯// 코드는 요 근래 작성한 것 중에 가장 무식하게 작성해놓아서 공개하기가 부끄럽구려 ㅋㅋㅋ 그래도 .. 더보기
PKU 2181. Jumping Cows. [판정:AC] 정말 간만에 문제를 푼다는 느낌을 제대로 받는구만 ㅋㅋ 그리고 들보자식이 어느정도 사기(?)를 치고 있었다는 것도 알게 되었고// 최근에 올라온 [소점프 ac get] 글은 문제에 나온 예시만 돌려도 답을 얻을 수 없으니까 가급적 빠른 시일 내에 수정하도록 -_-; // PKU 2181. Jumping Cows #include using namespace std; int s[150000]; int indexbound; int calc( int start, int end, int isreverse ) { int i; int temp; int max, maxindex; int min, minindex; int result = 0; max = min = s[start]; maxindex = minindex =.. 더보기
PKU 2291. Rotten Ropes. [판정:AC] 이것은 마치 2차방정식의 극한값(최대값)을 찾는 문제와 같구려 ㄲㄲ 처음에 정렬함수 만들기가 귀찮아서 라이브러리함수 갖다 쓰려고 잔머리 굴렸다가 wa ㅋㅋㅋㅋ // PKU 2291. Rotten Ropes #include using namespace std; void bbsort( int *ary, int length ) { int i, j; for( i = 0; i = i; j-- ) { if( ary[j] > ary[j+1] ) { swap( ary[j], ary[j+1] ); } } } } int main() { int t; int n; int w[1000]; int i; int max; scanf( "%d", &t ); w.. 더보기
PKU 3032. Card Trick. [판정:AC] 문제 자주 못풀어서 미안; -_-a #include #include int main() { int n; int cards; int *linear; int i, j; int ind; scanf( "%d", &n ); while( n > 0 ) { scanf( "%d", &cards ); linear = (int *) calloc( cards, sizeof(int) ); ind = 0; for( i = 1; i 더보기
PKU 3085. Quick Change. [판정:AC] 매우 쉬운 문제로군요 '-'; 그냥 거스름돈을 잘 거슬러 주기만 하면 됩니다 :D #include using namespace std; int main() { int n, c; int i; scanf( "%d", &n ); for( i = 1; i 더보기
PKU 2260. Error Correction. [판정:AC] 간만에 AC받도록 협조(?)해준 스파킹군에게 심심한 감사를 표하며 ㅋㅋ 원리는 간단합니다 모든 "행의 합"들과 "열의 합"들이 짝수가 나오는 경우 와 "행의 합"들 중 홀수가 1개, "열의 합"들 중 홀수가 1개 나오는 경우 를 제외하고는 전부 "Corrupt"를 출력해주시면 되겠습니다 :) #include using namespace std; int main() { int size = 1; int rowsum[99]; int colsum[99]; while(1) { int i, j; int temp; int rowodds, colodds; scanf( "%d", &size ); if( size == 0 ) { break; } for( i = 0; i < size; i++ ) { rowsum[i] = 0.. 더보기
UVa 341. Non-Stop Travel. [판정:TLE] STLW2로 이사하고나서 처음 올리는 솔루션인 것 같은데 무식하게 탐색해서 그런지 결국 TLE를 먹었군요 -_-; #include using namespace std; #define MROUTE 30 // maybe most number of routes // 1st column is departure, 2nd column is destination, 3rd column is delay // 90 row are most number of streets int ary[90][3]; int nost = 0; // number of existing streets // 1st~10th column are passed intersection list, 11th column is total delay, 12th c.. 더보기
PKU 2844. Sum and Product. [판정:TLE] 으잌ㅋ 3초 안에 답이 안나오는 케이스가 있다닠ㅋㅋㅋ 나 안햌ㅋㅋㅋㅋㅋㅋㅋ #include #include using namespace std; #define PMAX 8 // maximum quantity of primes #define FMAX 27 // maximum quantity of factors class GSet // Given Set { public: int iN; int iS; int iP; }; class CSet // Calculating Set { public: int iN; int iS; int iP; int iaPrimeSet[PMAX]; int iaPrimeExp[PMAX]; int iaFactorSet[FMAX]; CSet() { int iIterA; for( iIterA .. 더보기
PKU 1422. Air Raid. [판정:RE] RE받은거라서 안올리려고 했는데 ( 만약 RE가 아니었다면 WA였겠지만 ) 그냥 블로그 돌아가는 느낌은 내야되니까 올려보아요 :) 알고리즘은 "그래프 자료구조"를 이용했다고 생각하시면 됩니다 실제로 그래프를 구현하지는 않았지만 -_-; 이전 솔루션들과 비교했을 때 변수명이 좀 낯설게 보이실 수 있습니다만 최근에 API 공부할 때 보니, API 책에서 변수명 앞에 알파벳을 붙여주는 것이 좋다고 해서 ( 이미 전에도 컴공 조교들한테 들었던 얘기인데 귀찮아서 안했는데, API 책의 예제는 싸그리 그런 형식이라서 어쩔 수 없이 '-' ) 나름 그런 형식을 지켜본 것입니다 :) #include using namespace std; enum View { NO, YES }; class Street { public: .. 더보기
PKU 2245. Lotto. [판정:AC] 예압 일단 인증 ㄱㄱ요 많이 피곤한 상태에서 졸릴락 말락 하면서 풀었더니 좀 코드가 지저분한 감이 없지 않아 있는 것 같은데 그래도 그냥 올림요 ㅋㅋ #include #include int nc6( int n ) { // this function returns value of nC6 int res = 1; int i; for( i = 0; i < 6; i++ ) { res *= n-i; } res /= 720; return res; } int dscanf( int *pnum ) { scanf("%d", pnum); return *pnum; } void main() { int n; int *nums; int dmy[6]; // dummy variable set int i, j, k; while( dscan.. 더보기
PKU 2390. Bank Interest. [판정:AC] 선ㅋ빵ㅋ 아침출근이라 안풀리면 어쩌나 걱정했는데 한큐에 끝ㅋ #include #include void main() { double r; double m; int y; scanf("%lf %lf %d", &r, &m, &y); printf("%d\n", (int)floor( m * pow(1+r/100, y) )); } 더보기
PKU 2871. A Simple Question of Chemistry. [판정:AC] 심플하죠 =_= 마지막에 End of Output 출력하는 것만 안 잊어버리면 한방에 AC받았을텐데 -_-; #include #include using namespace std; int main() { vector v; float fl; int i, j; for( i = 0; fl != 999; i++ ) { cin >> fl; if( fl == 999 ) { continue; } v.push_back(fl); } for( i--, j = 1; j < i; j++ ) { printf("%.2lf\n", v[j] - v[j-1]); } printf("End of Output\n"); return 0; } 더보기
PKU 3589. Number-guessing Game. [판정:AC] 오랜만에 올리는 문제라 일부러 쉬운걸 올렸는지 어쩐지는 몰라도 일단 쉽게 AC -_-; 근데 새로 들어온 분은 문제풀이 하시는거임? 이번달 문제풀이현황 올릴 때 넣을까 말까 정해야되는데 -_-a 그리고 활동 없는사람 2명 정리 할건지 말건지 얘기좀 ㅇㅇ 더보기
PKU 2853. Sequence Sum Possibilities. [판정:AC] 대망의 AC입니다 :D 최근에 나온 문제들 중 몇개는 도통 안풀리길래 잠시 접어두고 전에 풀다 막힌 것들 중 이놈을 다시 잡았습니다 알고리즘에 대한 이야기는 http://studyinglw.tistory.com/587 의 아랫부분에 나와있으니 참고하세요 #include #include using namespace std; bool isprime( int n ); int intpow( int m, int n ); void clear(); void factorize( int n ); void spread(); int possibility( int n ); int primeset[10] = {1, 0}; int primeexp[10] = {0}; int *factors; int elements = 1; // .. 더보기
PKU 1989. The Cow Lineup. [판정:TLE] 일단, 제 문제해석에 댓글달아주신 milk님 감사합니다 (__) 기존의 알고리즘을 접어두고 이 방법으로 주워먹기하려 했으나 결과는 이렇네요 ㅋㅋ (가장 최근의 2건) 아무래도 소수열을 전부 살펴보는 것이다보니 N이 커지면서 시간이 많이 증가하는듯 합니다 시간 줄이는 방법을 좀 연구해봐야 할듯; #include int N, K; int *cows; void clear( int ary[], int sz ); int seek( int ary[] ); int main() { int i; scanf("%d %d", &N, &K); cows = new int[N]; for( i = 0; i < N; i++ ) { scanf("%d", &cows[i]); } printf("%d\n", seek(cows)); retu.. 더보기
PKU 1989. The Cow Lineup. [판정:WA] 스파킹 미안 -_-; 난 이게 한계임 #include int N, K; int *cows; int seek( int ary[] ); int main() { int i; scanf("%d %d", &N, &K); cows = new int[N]; for( i = 0; i N ) return 1; int x, y, z; int *check; int power = 1; // K's exponent, caution: overflow int bound; if( N % K ==.. 더보기
모두들 메리크리스마스 N 해피뉴이어~ 는 개뿔 -_- PKU 1989. The Cow Lineup. [판정:TLE] 흑흑 같이 바람쐬러 나갈 여친 없는 것도 모자라서 저녁에 [군인놈 1명 공익놈 1명 예비역 1명]들과 모여서 술마시기로 했음 더러운 세상 ㅋㅋㅋㅋㅋㅋ 처음의 CE는 main함수의 return type이 void인 탓에 :( 기본 아이디어는 solving process에 올려서 트랙백을 달든지 하겠구요 -_-; 그 아이디어를 바탕으로 처음 끄적거렸던게 아래의 소스이고, #include int N, K; int *cows; int seek( int ary[] ); void main() { int i; scanf("%d %d", &N, &K); cows = new int[N]; for( i = 0; i < N; i++ ) { scanf("%d", &cows[i]); } printf("%d\n", seek(co.. 더보기
PKU 1547. Clay Bully. [판정:AC] 최근에 어떤분이 제 [Dividing Coins - RE] 글에다 RE뜨는 이유를 댓글로 적어주셨습니다 그 덕분에 현재 RE에서 WA로 발전한 상태입니다 -_-; 그런데 이것도 같은 이유였더군요 ㅋㅋ 문득 살펴보다가 내가 왜 문제를 제대로 안 읽었을까 하고 반성했다는 :( #include #include typedef struct student { int dimension; char name[12]; } student; int dscanf( int *pnum ) { scanf("%d", pnum); return *pnum; } void main() { int n; student list[10]; int i; while( dscanf(&n) != -1 ) { int temp; char tempstr[12].. 더보기
UVa 562. Dividing Coins. [판정:WA] 방금 전까지 몇번을 수정해보고 제출했으나 전부 WA입니다 거의 모든 예외를 처리했다고 생각했는데 뭔가 남아있나봐요 -_-; (↓실제 제출할 때는 테스트 케이스들은 빼고 제출했습니다) #include void clear( int ary[] ) { int i; for( i = 0; i < 100; i++ ) { ary[i] = 0; } } int mindiff( int ary[], int s ) { int i, j; int sum = 0; int opp; /* abbr. of opponent, take from sum */ int carry = 0; /* addition to opp */ int diff; int mind = 100000; /* abbr. of minimum difference */ int .. 더보기
UVa 562. Dividing Coins. [판정:RE] -_-; RE가 뭐하면 뜨는건지 잊어버려서 뭘 고쳐야될지 잘 모르겠음요 ㅋㅋㅋㅋ 활동하는 사람이 없으니 이거 원; #include void clear( int ary[] ) { int i; for( i = 0; i < 100; i++ ) { ary[i] = 0; } } int mindiff( int ary[], int s ) { int i, j; int sum = 0; int opp; /* abbr. of opponent, take from sum */ int carry = 0; /* addition to opp */ int diff; int mind = 500; /* abbr. of minimum difference */ int minind; /* index, indexing when mind is r.. 더보기
PKU 3372. Candy Distribution. [판정:AC] N이 2의 거듭제곱일 때만 yes가 나오는게 맞았군요 -_-;; 문제에서 여러 케이스가 들어온다고 쓰여있었는데 못보고 EOF 처리를 하지 않아서 wa를 받았던 것 같습니다 ㅋㅋㅋ 소스는 올릴까 말까 고민중임요 -_-;; 마지막에 ac받은건 나름 숏코딩으로 줄여본겁니다 C 기준으로 24위에 안착해 있어요 ㅋㅋ 더보기
PKU 3372. Candy Distribution. [판정:WA] 처음에는 머리로 그림을 몇번 그려보다가 간단하게 생각해서 1부터 N-1까지( 엄밀히 말하면 0부터 N-1까지 )의 합이 N의 배수가 아니면 무조건 yes, 그 이외에는 no인줄 알고 #include void main() { __int64 n; scanf("%I64d", &n); if( (n-1)*n/2 % n ) printf("YES\n"); else printf("NO\n"); } 이렇게 짰다가 한번 wa를 받았고 -_-; 그 다음은 노트에 그림을 직접 그려보면서 체크해봤더니 N이 2의 거듭제곱일 때에 한해 yes가 나오길래 ( 2~12까지 체크해보고, 추가로 16을 체크해봤음 ) #include void main() { int n; scanf("%d", &n); while( n > 1 ) { if( .. 더보기
PKU 3224. Go for Lab Cup! [판정:AC] 몇자 안고치고 끝났네요 -_-; #include void main() { int n, temp; int winner, winsum; int wnr_high, wsum_high = 0; scanf("%d", &n); for( winner = 1; winner 더보기
PKU 3224. Go for Lab Cup! [판정:WA] 행렬을 사용하지 않고 해볼랬더니 wa가 뜨네요 -_-; 그닥 틀린 부분은 없어보이는데; #include void main() { int n, temp; int winner, winsum; int wnr_high, wsum_high = 0; scanf("%d", &n); for( winner = 1; winner 더보기
PKU 1547. Clay Bully. [판정:RE] 우선, 스파킹군이 dimension을 잘못 번역해놓아서 (고의는 아니었겠지만) 문제의 이해가 다소 어려웠습니다 =_=; 여기선 dimension을 완성된 과제물의 부피로 해석해야 입출력 예시와 들어맞습니다 ㅋㅋ #include #include typedef struct student { int dimension; char name[12]; } student; int dscanf( int *pnum ) { scanf("%d", pnum); return *pnum; } void main() { int n; student list[8]; int i; while( dscanf(&n) != -1 ) { int temp; char tempstr[12]; int min, minindex; int max, maxind.. 더보기
PKU 2853. Sequence Sum Possibilities. [판정:TLE] ㅋㅋ 이럴수가 :( 인수분해를 하고 나서 그 인수들을 다시 곱하는 방법으로 약수들을 다 구했습니다만 -_-; (이때, 인수분해를 통해 나온 인수들에 2를 하나 추가해서 구했습니다) 여전히 TLE가 뜨네요 ㅠ (Run ID : 5826748) #include #include #include int integer( double d ); int isprime( int n ); void reset(); void factorize( int n ); int spread(); int possibility( int n ); // 1st row is primes, 2nd row is power of primes int primeset[2][11] = {0}; int added[11] = {1, 0}; // 1 + pow.. 더보기
PKU 2000. Gold Coins. [판정:AC] 역시 -_-; 이건 쉬운문제였군요 -_-ㅋ 군수열을 응용하면 간단하게 풀립니다 :) #include int dscanf( int *pnum ) { scanf("%d", pnum); return *pnum; } int sigma_k( int n ) { return n * (n+1) / 2; } int sigma_ksquare( int n ) { return n * (n+1) * (2*n+1) / 6; } void main() { int day; int temp, i; while( dscanf(&day) != 0 ) { i = 0; do { i++; temp = sigma_k(i); } while( day >= temp ); i--; temp = sigma_k(i); if( day == temp ) { pr.. 더보기
PKU 2853. Sequence Sum Possibilities. [판정:TLE] ㅋㅋ 또 TLE입니다 -_-; 첫번째 TLE는 요놈이구요 (Run ID : 5768623) #include #include #include int integer( double d ) { if( floor(d) == ceil(d) ) return 1; else return 0; } int isprime( int n ) { int i, sq; if( n 더보기