본문 바로가기

Solutions

PKU 1454, UVa 324. Factorial Frequencies. AC #include #include #include int n; typedef struct { char *start, *end; int len; }bigint; void make(bigint *a, char *string) { a->len=strlen(string); a->start=realloc(a->start,(a->len+1)*sizeof(char)); memset(a->start,0,sizeof(char)*(a->len+1)); a->end=a->start+(a->len-1); strcpy(a->start, string); } void delete(bigint *a) { free(a->start); } void init(bigint *a) { a->len=1; a->start=calloc(2,size.. 더보기
PKU 1089. Intervals. [판정:WA] 위의 3건이 가장 최근에 제출해본 것입니다 그중 첫번째(Run ID: 5178307)는 검토해보니 정말 틀린부분이 있어서 WA가 났고 두번째(Run ID: 5192652)는 검토해보니 최악의 경우 O(n²)까지도 나올지도 모르겠더군요 (무작정 입력을 받아서 전부 정렬한 뒤에 겹치는 부분을 출력에서 생략하는 방식이라 -_-;) 그래서 팀블로그에 가장 마지막으로 끄적인 Intervals 풀이의 알고리즘과 유사하게 풀어보았습니다만 왜 WA가 또-_- 나오는지는 모르겠네요 #include using namespace std; class Interval { public: int lower; int upper; Interval() { lower = 0, upper = 0; } Interval( int a, int .. 더보기
PKU 2840. Big Clock. AC #include int main() { int t, i, h, m; scanf("%d", &t); for(i=0; i 더보기
PKU 2656. Unhappy Jinjin. AC #include int main() { int n, i, a, b, max, day; scanf("%d", &n); while(n) { max=day=0; for(i=0; i max) { max=a+b; day=i; } } printf((max 더보기
PKU 2656. Unhappy Jinjin. [판정:AC] 오늘 병원가서 풀어볼 생각으로 문제를 읽었는데 적어가기도 민망할 만큼 쉬운놈이었네요 -_-;; #include int dscanf( int *pnum ) { scanf("%d", pnum); return *pnum; } void main() { int n, i; int hour, sum; int diff, trial; while( dscanf(&n) != 0 ) { diff = 0; trial = 0; for( i = 1; i 8 && (sum-8) > diff ) { diff = sum - 8; trial = i; } } printf("%d\n", trial); } } 더보기
PKU 2243. Knight Moves. [판정:AC] The Triangle을 풀기 이전에 손코딩으로 풀었던 문제입니다 -_-; 처음에는 시작점에서 n번만에 갈 수 있는 모든 위치를 표시하고 각 거리마다 어떤 규칙이 있는지 파악하려고 했었습니다만, ( 여기에서 거리란, 시작점에서 가로나 세로로만 움직여서 도착점까지 갈 때 필요한 움직임의 수를 의미합니다 ) ( 즉 a1에서 c2까지의 거리는 3이고, b4에서 h7까지의 거리는 9라고 간주합니다 ) 일정 거리까지만 규칙이 보이고 그 이후에는 규칙이 잘 보이지 않았습니다 그래서 벡터를 사용하여 문제를 풀기로 했습니다 ( 자료구조적 벡터 말고 수학적 벡터 -_-; ) 가만 보면, 시작점으로부터 거리가 짝수인 위치로는 짝수번만에 이동이 가능하고 시작점으로부터 거리가 홀수인 위치로는 홀수번반에 이동이 가능했습니다 (.. 더보기
PKU 1163. The Triangle. [판정:AC] 이건 뭐 제가 번역해놓고서 당시엔 풀이법을 모르겠어서 한쪽으로 밀어두었던 문제입니다 -_-;; 그러는 중에 들보군과 환타님의 솔루션이 올라와서 살짝 훑어보았습니다 소스는 읽다보면 풀이를 그대로 따라가게 될 것 같아서 거들떠보지도 않고 나머지 부분만 보았는데요 들보군의 것은 "AC Get"을 한글로 쳐놓은 "ㅁㅊ ㅎㄷㅅ"를 스파킹군이 이해하지 못해서 시작된 댓글놀이가 주가 되었고 -_-ㅋ 환타님의 것은 마지막에 시크하게 "그냥 큰 것만 골라서 더하면 되네요"라고 써놓은게 제 머리에 남아서 힌트가 되었습니다 -_-b 요새 계속 병원에 있어야 하는지라 "그냥 큰 것만 골라서 더하면 되네요"만 가지고 손코딩을 했습니다 크하하핰 왜 전 항상 다른 팀원들에 비해 압도적인 양의 코딩을 해야 문제가 풀리는걸까요 ㅠㅠ .. 더보기
PKU 2840. Big Clock AC 네요~ 안녕하십니까~? 오늘도 한발 느린 테슬라 입니다~ #include #include #include int main(void) { int input,i,H,M; char Time[10],*token; char seps[]=":"; scanf("%d",&input); for(i = 0; i < input ; i++){ scanf("%s",Time); token = strtok(Time, seps); H = atoi(token); token = strtok(NULL, seps); M = atoi(token); if(M == 0){ H = (H+12)%24; if(H == 0) H =24; printf("%d\n",H); } else printf("0\n"); } return 0; } 우와 이런 쉬운 문제를 왜.. 더보기
PKU 2243. Knight Moves. AC get -_- #include #include #include #include #include using namespace std; typedef struct point { int x, y; }Point; list temp[8]; int arr[8][8]; void clearMap() { int i; memset(arr, -1, sizeof(arr)); for (i = 0; i = 0 && py >= 0 && px < 8 && py < 8)) { re.. 더보기
PKU [2840]. Big Clock. [AC] #include int main() { int n; char temp; int hour, minute; scanf("%d", &n); while(n--) { scanf("%d%c%d", &hour, &temp, &minute); if(minute == 0) { if(hour>=0 && hour 더보기
PKU 2840. Big Clock. [판정:AC] 여러분 저 아직 살아있습니다 #include void main() { int t, h, m; char temp; scanf("%d", &t); while( t > 0 ) { scanf("%d %c %d", &h, &temp, &m); if( m != 0 ) printf("0\n"); else { h = (h + 12) % 24; printf("%d\n", (h == 0)? (h + 24): h); } t--; } } 나중에 여유가 생기면 풀려고 했는데 이건 당장 풀어도 될만하네요 -_-; 더보기
PKU 2840. Big Clock. AC get! #include int main() { int a, b, n; scanf("%d", &n); while (n--) { scanf("%d:%d", &a, &b); if (b != 0) { printf("0\n"); continue; } if (a == 12) { printf("%d\n", 24); continue; } printf("%d\n", (a + 12) % 24); } return 0; } 뻘짓 좀 해서 WA 한번 떴습니다. 별거 없는 단순한 문제죠? 더보기
PKU 2656. Unhappy Jinjin AC 네요~ 이야 오랜만입니다~ 시험과 과제의 틈에서 일단 살아있는 테슬라입니다. #include int main(void) { int i,K,temp1,temp2; int value=0; int flag=0; while(1){ scanf("%d",&K); for(i = 0;i 8) && (temp1+temp2 > value)){ value = temp1+temp2; flag = i+1; } } if(K == 0) break; else printf("%d\n",flag); value = 0; flag = 0; } } 네 이런거입니다. K값을 입력 받고 그 수만큼 루프를 돌려서 두 값을 입력받습니다. 그때 K값이 0이.. 더보기
PKU [2656]. Unhappy Jinjin. [AC] #include int main() { int i, n; int temp = 0, input1, input2; int checker, answer = 0; while(1) { scanf("%d", &n); if(n == 0) { break; } for(i=1 ; i 8) && (checker > temp)) { temp = checker; answer = i; } } printf("%d\n", answer); temp = 0; answer = 0; checker = 0; } return 0; } In PKU judge system. 간만에 문제풀었습니다. 재미있군요. - 너무 오랜만이었던 때문에 초기화를 안하는 실수를 저질렀었습니다 -_-a; WA 가 2번이나 떴었네요 - 더보기
PKU 2656. Unhappy Jinjin. AC get import java.util.Scanner; public class test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int i, n, md, mv, a, b; while(true) { n = sc.nextInt(); md = -1; mv = -1; if (n == 0) break; for (i = 0; i mv) { mv = a + b; md = i + 1; } } if (mv 더보기
PKU 1163. The Triangle. AC #include int tri[101][101], max; int bigger(int y, int x) { int a, b; a=tri[y-1][x-1]; b=tri[y-1][x]; return (a>b)?a:b; } int main() { int n, y, x; scanf("%d", &n); for(y=1; y 더보기
PKU 1163. The Triangle. ㅁㅊ ㅎㄷㅅ~! #include using namespace std; int data[101][101]; int main() { int n, i, j, big = 0; cin >> n; for (i = 0; i data[i][j]; data[i][j] = max(data[i - 1][j] + data[i][j], data[i - 1][j - 1] + data[i][j]); } } for (i = 1; i 더보기
pku 1454, UVa 324. Factorial Frequencies. CE. 채점큐 #include #include int n; class bigint { unsigned char *start, *end; int len; public: bigint operator=(char *); bigint operator=(int); bigint operator=(bigint); void make(unsigned char *, int); bigint(); bigint(char *); bigint(int); ~bigint(); bigint(bigint &); friend bigint operator+(bigint, bigint); friend bigint operator*(bigint, bigint); void print(); }; void bigint::make(unsigned char *src, .. 더보기
PKU 2039. To and Fro. AC #include #include char pwd[210]; int n, len; void rev(char *a, char *b) { char tmp; for(; a 더보기
PKU 2039. To and Fro. [판정:AC] #include int dscanf( int *pnum ) { scanf("%d", pnum); return *pnum; } void main() { char string[256]; int column; while( dscanf(&column) != 0 ) { int i, j; int quo; // quotient int length; int key; char temp; scanf("%c", &temp); for( i = 0; i 더보기
PKU 2039. To and Fro. AC get -_-! #include #include #include char temp[256], buf[256]; int main() { int cnt, i, j, k, len; while(scanf("%d", &k)) { cnt = 0; if (k == 0) { break; } scanf("%s", buf); len = strlen(buf); for (i = 0; i < k; i++) { for (j = i; j < len; j += k) { if ((j / k) % 2 != 0) { temp[cnt++] = buf[((j / k) + 1) * k - 1 - (j % k)]; } else { temp[cnt++] = buf[j]; } } } temp[len] = '\0'; puts(temp); } } .... 그냥 단순한.. 더보기
UVa 324. Factorial Frequencies. AC get -_- import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) { int n, i; int[] data; BigInteger a; String temp; Scanner sc = new Scanner(System.in); data = new int[10]; while (sc.hasNextInt()) { n = sc.nextInt(); for (i = 0; i < 10; i++) { data[i] = 0; } if (n == 0) { break; } a = BigInteger.ONE; for (i = 1; i 더보기
UVa 324, PKU 1454. Factorial Frequencies. [판정:AC] 저도 처음에는 Dlbo군의 판정과 같은( 아마 같을 ) In the queue였습니다 그래서 일단 pku에 먼저 질러보자 하는 마음으로 질렀습니다 .. 두번의 CE를 받으면서 채점 기준이 좀 까다롭다는 생각을 했습니다 채점을 위해서는 형식을 통일해야한다는건 잘 알지만, 그냥 짜증나더라고요 ㅋㅋㅋㅋ pku에서 AC받고 uva로 넘어갔더니, 거기에서도 CE가 떠있길래 ( uva에 처음 제출한 소스와 pku에 처음 제출한 소스가 동일 ) pku에 마지막으로 제출한 소스를 그대로 uva에 제출했더니 AC가 나오더군요, 다행히 ㄷㄷ 소스를 올릴까 말까 했는데, 일단 올려봅니다 알고리즘은 매우 간단합니다 1~366의 범위를 갖는 자연수 k에 대해 k!의 값을 구해서, 그것의 각 자리수가 무엇으로 이루어져있는가를 보.. 더보기
UVa 324. Factorial Frequencies 채점큐에서 안나옴 -_- package uva324; import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) { int n, i; int[] data; BigInteger a; String temp; Scanner sc = new Scanner(System.in); data = new int[10]; while (sc.hasNextInt()) { n = sc.nextInt(); for (i = 0; i < 10; i++) { data[i] = 0; } if (n == 0) { break; } a = BigInteger.ONE; for (i = 1; i 더보기
PKU1455. Crazy tea party. AC #include main() { int n, table, part1, part2; scanf("%d", &n); while(n--) { scanf("%d", &table); part1 = (table/2); part2 = (table-part1); part1--; part2--; printf("%d\n", ((part1 + 1)*part1)/2 + ((part2 + 1)*part2)/2); } } Run ID User Problem Result Memory Time Language Code Length Submit Time 4740526 jht009 1455 Accepted 196K 16MS C 270B 2009-03-07 19:56:58 정말 2부분으로 나누고 버블소트해주면 되네요. 더보기
PKU 1455. Crazy Tea Party. [판정:AC] 아 -_-; input이 6일때 왜 output이 6이 나오는지를 몰랐는데 알고나니 수열이 맞긴 맞군요 -_-; #include int linear( int n ) { if( n 1; n-- ) { res += n - 1; } return res; } } void main() { int m, n; scanf("%d", &n); while( n > 0 ) { int half; scanf("%d", &m); half = m / 2; printf("%d\n", linear(half) + linear(m-half)); n--; } } 여태까지 N/2은 생각해보지도 않고 N-1만 보고 있는 꼴이었으니 -_-; 더보기
PKU1455. Crazy tea party. AC get.. #include using namespace std; int main() { int cases, i, n, result, a, b; cin >> cases; for (i = 0; i > n; if(n % 2 == 0) { result = (n / 2 - 1) * n / 2; } else { a = n / 2; b = n - n / 2; result = ((a-1) * a + (b - 1) * b) / 2; } cout 더보기
PKU 1904. King's Quest. [판정:WA] ㅋㅋㅋ 젠장 알고리즘이 정리되지 않는 상태에서 그냥 막코딩했더니 이모양이군요 -_-; solving process에 올려놓은 케이스에 대해서는 잘 나옵니다만 아마 어딘가 틀렸으니 wa겠지요? =_= #include #include using namespace std; enum purity { CLEAN, DIRTY }; class Vertex { public: int odeg; int *dest; purity status; Vertex() { odeg = 0; dest = NULL; status = CLEAN; } }; list *ls; list::iterator iter; void permutation( Vertex *pv, int n, int depth ); int main() { Vertex *vs.. 더보기
PKU 2719. Faulty Odometer. AC #include #include int table[10]={0,1,2,3,0,4,5,6,7,8}; int cvt(char *str) { int i,nines=1,result=0; for(i=strlen(str)-1; i>=0; i--, nines*=9) result+=(table[str[i]-'0'])*nines; return result; } main() { char str[10]; gets(str); while(str[0]!='0') { printf("%s: %d\n",str,cvt(str)); gets(str); } } 그냥 0,1,2,3,5,6,7,8,9을 사용하는 구진법 숫자를 십진법으로 바꾸면 되는 문제였네요. int e(char*a){int b[]={0,1,2,3,0,4,5,6,7,8},i,.. 더보기
PKU 2719. Faulty Odometer. AC get... a(n,k,nn,sum1,sum2){if(n 더보기