본문 바로가기

Solutions

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 3074. Sudoku. AC get -_- 아 나 스도쿠 한번 풀기 더럽게 빡치네 이게 얼마나 걸린거야 -_- #include #include #define SIBAL 750 #define CIBAL 350 #define V SIBAL*CIBAL int U[V], D[V]; int L[V], R[V]; int C[V], ROW[V]; int H[SIBAL], S[CIBAL]; int size; char s[10][10]; int nimiral1[SIBAL], nimiral2[SIBAL], OK[87]; char nimhi[SIBAL]; void Link(int r, int c) { S[c]++ ; C[size] = c; ROW[size] = r; U[size] = U[c]; D[U[c]] = size; D[size] = c; U[c] = size.. 더보기
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 3364. Black and white painting. AC get~ #include using namespace std; int main() { int n, m, c; while(cin >> n >> m >> c) { if (n == 0 && m == 0 && c == 0) { break; } if(n < 8 || m < 8) { cout 더보기
UVa 628. Passwords. AC g~e~t~ #include #include char words[101][300], input[10000]; int n, m, now, tot; int out[10]; void fuck(int x) { int i, k; if (x == tot) { k = 0; for (i = 0; input[i]; i++) { if (input[i] == '#') { printf("%s", words[now]); } else { putchar(out[k++] + '0'); } } putchar('\n'); return; } for (i = 0; i < 10; i++) { out[x] = i; fuck(x + 1); } } int main() { int i, j; while (~scanf("%d", &n)) { getchar(); f.. 더보기
PKU 3132. Sum of Different Primes. [판정:TLE] 소점프건은 들보의 코드를 꼼꼼히 읽어보지 않은 내 실수였소 -_- 대충 설명해놓은 뉘앙스라 좀 찜찜하지만, 어쨌든 저게 최상의 풀이인 것 같아 난 손떼기로 ㅋ… ( 일단은 AC 받았기 때문이기도 하고, 가끔은 내가 쓴 코드지만 건드릴 엄두가 안난다 ㅋㅋㅋ ) { 1000, 10 }에 대한 답을 출력하는데 1분 이상, 5분 이하의 시간이 소요되는듯// ( 엔터쳐놓고 잠깐 보고있다가 이닦고 왔더니 답이 출력되어있어서 그렇게 추정 ) 일단 현재 코드는 recursion으로 쓴 상태이고, { 1000, 10 }에 대한 답이 잘 나오는 것으로 보아 이 recursion을 iteration으로 잘 바꾸면 AC 받을듯// 코드는 요 근래 작성한 것 중에 가장 무식하게 작성해놓아서 공개하기가 부끄럽구려 ㅋㅋㅋ 그래도 .. 더보기
PKU 3132. Sum of Different primes. AC get -_- #include #include using namespace std; set tool; set::iterator sit; int tot, n, k, cnt, checker[15][1121]; void maketool() { int i; bool isPrime; tool.insert(2); tool.insert(3); for (i = 5; i > n >> k) { if (n == 0 && k == 0) { break; } memset(checker, 0, sizeof(checker)); checker[0][0] = 1; for(j = 0, dit = tool.begin(); j = *(dit); l--) { check.. 더보기
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 get -_-! #include #include int cal[1000]; int chk(const void * a,const void * b) { if (*(int*)a > *(int*)b) { return -1; } else if (*(int*)a == *(int*)b) { return 0; } else { return 1; } } int main() { int cases, n, t, w, i, j, max; scanf("%d", &cases); while(cases--) { max = 0; scanf("%d", &n); for (i = 0; i max) { max = cal[i]; } } qsort(cal, n, sizeof(int.. 더보기
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 2181. Jumping Cows -_- AC get #include using namespace std; int main() { int n, i, j, cnt = 1, sum = 0, total = 0, temp = 0; int buf[150000]; cin >> n ; for (i = 0; i > buf[i]; } for(j = 1; j buf[j]) { temp = buf[j - 1]; cnt++; sum += temp; } } else { if(buf[j] > buf[j - 1]) { temp = buf[j - 1]; cnt++; sum -= temp; } } } cout 더보기
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 3032. Card Trick. AC get -_- #include #include using namespace std; void repack(int * target, int * src, int start,int size) { memcpy(target, src + start - size, size); memcpy(src, src + start - size, start - size); memcpy(src, target, size); } int main() { int arr[13], cnt, cases, input, i, movset, temparr[13]; cin >> cases; while (cases--) { for (cnt = 0; cnt > input; cnt = 1; while (in.. 더보기
PKU 3176. Cow bowling. AC get -_- #include int main() { int arr[400][400], n, i, j, max; scanf("%d", &n); for (i = 0; i arr[i - 1][j]) ? arr[i - 1][j - 1] : arr[i - 1][j]; } } else if (i == 1) { arr[i][j] += arr[0][0]; } } } max = 0; for (i = 0; i max) { max = arr[n - 1][i]; } } prin.. 더보기
PKU 2260. Error Correction. AC get -_- #include using namespace std; int main() { int n, horsum, versum, horcnt, vercnt, i, j, x[100][100], cx, cy; while (cin >> n) { horcnt = 0; vercnt = 0; if (!n) { break; } for (i = 0; i > x[i][j]; horsum = x[i][j] + horsum; } if (horsum % 2 != 0) { cx = i; horcnt++; } } if (horcnt >= 2) { cout 더보기
PKU 3085. Quick Change. AC get -_- #include using namespace std; int main() { int sum, peb[5], res[5], num, i, j; peb[1] = 25; peb[2] = 10; peb[3] = 5; peb[4] = 1; cin >> num; for (i = 1; i > sum; cout 더보기
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 1422. Air Raid. AC get! #include int found[1001][1001], checked[1001], followed[1001], inters; int DFS(int node) { int i, j; for (i = 1; i 더보기
PKU 1422. Air raid. WA -_-.... #include int found[10001][10001]; int result[10001][10001]; int main() { int cases, inters, streets, start, end, i, j, k, l, sum; scanf("%d", &cases); while (cases--) { scanf("%d", &inters); scanf("%d", &streets); while (streets--) { scanf("%d%d", &start, &end); found[start][end] = 1; result[start][end] = 1; } for (i = 1; i < inters; i++) { for (j = 1; j 더보기
PKU 2844. Sum and Product. TLE -_- #include __int64 multipoint[100000]; __int64 factors[100000]; int main() { __int64 n, s, p, factnum, i, j, sum, prod, count; while(~scanf("%d%d%d", &n, &s, &p)) { /* initialize & input */ factnum = 0; for (i = 1; i < s; i++) { if (p % i == 0) { factors[factnum] = i; factnum++; } } for (i = 0; i < n; i++) { multipoint[i] = factnum - 1; } /* calculating */ while (multipoint[n - 1] != 0) { for (i =.. 더보기
PKU 1050. To the max. get AC -_-;; main() { int iInnerCnt, iOuterCnt, iTempCnt, n, max; int matrix[101][101], temp[101]; scanf("%d", &n); max = 0; for (iOuterCnt = 1; iOuterCnt 더보기
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 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 1422. Air Raid. [판정:RE] RE받은거라서 안올리려고 했는데 ( 만약 RE가 아니었다면 WA였겠지만 ) 그냥 블로그 돌아가는 느낌은 내야되니까 올려보아요 :) 알고리즘은 "그래프 자료구조"를 이용했다고 생각하시면 됩니다 실제로 그래프를 구현하지는 않았지만 -_-; 이전 솔루션들과 비교했을 때 변수명이 좀 낯설게 보이실 수 있습니다만 최근에 API 공부할 때 보니, API 책에서 변수명 앞에 알파벳을 붙여주는 것이 좋다고 해서 ( 이미 전에도 컴공 조교들한테 들었던 얘기인데 귀찮아서 안했는데, API 책의 예제는 싸그리 그런 형식이라서 어쩔 수 없이 '-' ) 나름 그런 형식을 지켜본 것입니다 :) #include using namespace std; enum View { NO, YES }; class Street { public: .. 더보기
PKU 2245. Lotto. 에이씨 -_- #include using namespace std; int dataset[13]; int nums; int outputs[6]; void getPerm(int num, int lev) { int iCnt; if (lev > 5) { for (iCnt = 0; iCnt < 5; iCnt++) { cout dataset[iCnt]; } //for (iCnt = 0; iCnt < nums - 6; iCnt++) //{ getPerm(0, 0); //} if (nums == 6) { for (iCnt = 0; iCnt < 6; iCnt++) { cout 더보기