본문 바로가기

Solutions/Fanta's Solution

PKU 2245. Lotto. AC #include int list[49], lotto[49], n; void print() { int i; for(i=0; i 더보기
PKU 2390. Bank Interest. AC #include #include int main() { int r, m, y; scanf("%d %d %d", &r, &m, &y); printf("%d", (int)(m*pow(1+(double)r/100, y))); return 0; } 풀이는 필요 없겠죠 더보기
PKU 2551. Ones. AC 오버플로우를 방지하기 위해 (a * b) % c = ((a % c) * (b % c)) % c (a + b) % c = ((a % c) + (b % c)) % c 를 사용했습니다. #include #include int rem(int i, int n) { static int result; if(i==0) { result=10%n; return result; } result=((10%n)*result)%n; return result; } int main() { int n, count; long long k; while(scanf("%d", &n)!=EOF) { if((n&1)==0) continue; if(n%5==0) continue; k=0; for(count=0; ; count++) { k=((k%n.. 더보기
PKU 2551. Ones. TLE 21을 예로들면 1 = 1 1 + 10 = 11 1 + 10 + 100 = 105 + 6 1 + 10 + 100 + 1000 = 105 + 21 + 966 + 19 1 + 10 + 100 + 1000 + 10000 = 105 + 21 + 966 + 21 + 9996 + 2 1 + 10 + 100 + 1000 + 10000 + 100000 = 105 + 21 + 966 + 9996 + 21 + 99981 #include #include int main() { int n, count; long long k; while(scanf("%d", &n)!=EOF) { k=0; for(count=0; ; count++) { k+=pow(10, count); k%=n; if(k==0) break; } printf("%.. 더보기
PKU 3372. Candy Distribution. AC 저도 2의 제곱수 (n & (n - 1)) == 0 #include int main() { int n; while(scanf("%d", &n) != EOF) { if((n & (n - 1)) == 0) puts("YES"); else puts("NO"); } return 0; } main(n,b){while(scanf("%d",&n)>-1){puts("NO\0YES"+((n&(n-1)) 더보기
PKU 3224. Go for Lab Cup! AC #include int main() { int n, i, j, win, max, cand, tmp; scanf("%d", &n); max=0; for(i=1; i 더보기
PKU 2845. 01000001. AC 0더하기 0의 결과가 출력되지 않는것만 고쳤습니다. 배열 3개 사용하나 90개 사용하나 메모리사용량은 별 차이가 없네요. #include typedef struct { unsigned dats[3]; }bin; void copy(char *src, bin *dest) { int len, i; memset(&(dest->dats), 0, sizeof(int)*3); len=strlen(src)-1; for(i=0; len>=0; len--, i++) dest->dats[i/32]|=((1&(src[len]-'0'))dats[i]=carry&(((long long)1=32; } } void print(bin src) { int i; for(i=95; !(src.dats[i/32]&(1>(i%32))&1); .. 더보기
PKU 2845. 01000001. WA 또 WA입니다. 어디가 잘못된건지... #include typedef struct { unsigned dats[3]; }bin; void copy(char *src, bin *dest) { int len, i; memset(&(dest->dats), 0, sizeof(int)*3); len=strlen(src)-1; for(i=0; len>=0; len--, i++) dest->dats[i/32]|=((1&(src[len]-'0'))dats[i]=carry&(((long long)1=32; } } void print(bin src) { int i; for(i=95; !(src.dats[i/32]&(1>(i%32))&1); } main() { int n, i; char bits[82]; bin a, b; .. 더보기
PKU 1218. THE DRUNK JAILER. AC 문이 홀수번 열리고 닫히면 되니 약수의 개수가 홀수개인 제곱수의 개수를 찾아 출력합니다. #include #include int is_square(int n) { int a, b, count=1; switch(n%10) { case 2: case 3: case 7: case 8: return 0; break; } for(a=2, b=0; (n&1)==0; n>>=1, b++); count*=(b+1); for(a=3; n>1; a+=2) { for(b=0; n%a==0; n/=a, b++); count*=(b+1); } return (count&1); } int run(int n) { int i, count=0; for(i=1; i 더보기
PKU 2665. Trees. AC 이것도 풀이가 필요 없죠 #include int main() { int start, end, tree, n; scanf("%d %d", &tree, &n); while(tree+n) { tree++; while(n--) { scanf("%d %d", &start, &end); tree=tree-(end-start+1); } printf("%d\n", tree); scanf("%d %d", &tree, &n); } return 0; } 기말고사가 끝났어요 더보기
PKU 3030. Nasty Hacks. AC #include main() { int a, b, c, n; scanf("%d",&n); while(n--) { scanf("%d %d %d",&a,&b,&c); if(a>b-c) puts("do not advertise"); else if(a 더보기
PKU 2853. Sequence Sum Possibili. AC n을 더한 수의 개수로 나누면, 더한 값들의 평균값이 나옵니다. #include #include int run(int n) { int m, lmt, count=0; lmt=sqrt((int)2*n); for(m=2; m 더보기
PKU 2000. Gold Coins. AC #include int gold(int days) { int i, sum=0, time=0, coin=1; for(i=1; i 더보기
UVa 300. Maya Calendar. AC # Problem Verdict Language Run Time Submission Date 7273761 300 Maya Calendar Accepted ANSI C 0.008 2009-07-26 09:43:44 haab력을 일수로 계산해서 다시 tzolkin으로 변환합니다. #include #include int get_haab() { int y, m, d, days; char *names[20]={"pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu", "uayet"}; char tmp[7]; scanf("%d.. 더보기
PKU 3673. Cow Multiplication. AC #include int main() { char str[2][11]; int i, j, sum=0; scanf("%s %s", str[0], str[1]); for(i=0; str[0][i]; i++) for(j=0; str[1][j]; j++) sum += (str[0][i]-'0') * (str[1][j]-'0'); printf("%d", sum); return 0; } 저도 그냥 그대로 풀었습니다. 더보기
PKU 2243. Knight Moves. AC #include int table[8][8]; void fill(int y, int x, int n) { if(table[y][x] 7 || x>7 || y 더보기
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 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 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 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 더보기
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 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 1904. King's Quest. TLE 비재귀함수까지 #include #include #include struct _prince_ { int love[2001]; int marry[2001]; int n; }prince[2001]; int married_prince[2001]; int n; int stack[2][2001]; int *top[2]={&stack[0][0],&stack[1][0]}; void push(int stack_num, int value) { *top[stack_num]++=value; } int pop(int stack_num) { return *(--top[stack_num]); } int is_stack_empty() { if(top[0] == &stack[0][0]) return 1; return 0; } void input().. 더보기
PKU 1904. King's Quest. TLE #include #include #include struct _prince_ { int love[2001]; int marry[2001]; int n; }prince[2001]; int married_girl[2001]; int n; void input() { int i, j ,k; scanf("%d",&n); for(i=0; i 더보기
PKU 1904. King's Quest. WA 그냥 모든 경우의 수를 탐색하는 방법입니다. #include struct _prince_ { int love[2001]; int marry[2001]; int n; }prince[2001]; int married_girl[2001]; int n; void input() { int i, j ,k; scanf("%d",&n); for(i=0; i 더보기
PKU 1953. World Cup Noise. AC 정상코드 #include int fib(int a) { int bef=1, sum=1, cnt; for(cnt=1; cnt 더보기
PKU 2845. 01000001. WA #include #include void scan(int *a) { int i, len; char tmp[90]; scanf("%s",tmp); len=strlen(tmp); len--; i=89; while(len>=0) { a[i--]=tmp[len--]-'0'; } } void sum(int *a, int *b) { int i, j; i=89;//a,b while(i) { a[i]+=b[i]; for(j=i; a[j]>=2; j--) { a[j-1]++; a[j]-=2; } i--; } } void print(int *a) { int i=0; while(a[i]==0)i++; while(i 더보기
PKU 2845. 01000001. WA #include #include #include #include int todec(char *string) { int i, lenth, sum=0; strrev(string);//뒤에서부터 1,2,4,8 귀찮아서 뒤집어서해봤어요. lenth=strlen(string); for(i=0;i 더보기