본문 바로가기

Solutions/Dlbo's Solution

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 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. 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 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 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 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 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 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 더보기
PKU 2245. Lotto. WA -_- 니미; #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(iCnt, 0); } } return 0; } Mr.K의 방법과 유사합니다만, 출력이 처리에 결합된 부분이 다릅니다. 이 부분에서 실수를 좀 했었는데, 마지막 함수에서 출력을 몰아서 해야 하건만, 매 프로세스마다 출력하도록 실수했었죠; 1 2 3 4 5 6 7중 6개를 뽑아야 한다면 1.. 더보기
PKU 2390. Bank Interest. AC get -_- main(a){double b,c;scanf("%lf%lf%d",&b,&c,&a);printf("%d\n",(int)floor(c*pow(1+b/100, a)));} 다시한번 숏코딩 ㄱㄱ 더보기
PKU 2871. A Simple Question of Chemistry. AC get -_-! main(){float p,c;scanf("%f%f",&p,&c);for(;c!=999;printf("%.2f\n",c-p),p=c,scanf("%f",&c));puts("End of Output\n");} 숏코딩작렬 더보기
PKU 3589. Number-guessing Game. AC get -_- #include int main() { int i, x, y, ca, cb; char j[5], k[5]; scanf("%d", &i); for (;i--;) { ca = 0; cb = 0; scanf("%s%s", j, k); for (y = 0; y < 4; y++) { for (x = 0; x < 4; x++) { if (j[y] == k[x]) { if (x == y) { ca++; } else { cb++; } } } } printf("%dA%dB\n", ca, cb); } return 0; } 풀라다 보니 뭔가 익숙해서 검색해보니 푼 문제더군. -_-; 숫자와 위치까지 같으면 A, 숫자만 같고 위치가 다르면 B로 카운팅해 출력하면 됩니다. 더보기
PKU 1989. The Cow Lineup, AC get -_-;; 슈....슈바;; 설마 이따위일 줄이야;;; #include #include using namespace std; #define max 10001 int table[max]; int main() { int N, K, remain, temp, ans = 1, i; cin >> N >> K; remain = K; for(i = 0; i > temp; if (!table[temp]) { table[temp] = true; remain--; } if(remain == 0) { remain = K; memset(table, false, sizeof(table)); ans++; } } cout 더보기
UVa 562. Dividing coins. AC get -_-; #include using namespace std; #define max 50002 int coinVal[101], coinNum, sum; int pos[max]; int main() { int n, i, half, j, k; cin >> n; while (n--) { sum = 0; cin >> coinNum; for(i = 0; i > coinVal[i]; sum += coinVal[i]; } half = sum / 2; pos[0] = 1; for(j = 0; j half) { continue; } for(k = half - coinVal[j]; k >= 0; k--) { if(pos[k]) {.. 더보기
PKU 3224. Go for lap Cup! AC get -_- #include using namespace std; int main() { int n, set[100], i, j, k; while (cin >> n) { for (i = 0; i > k; if (k >= 3) { set[i]++; } } } k = 0; for (i = 0; i set[k]) { k = i; } } cout 더보기
PKU 3372. Candy Distribution. AC get -_- #include using namespace std; int main() { int n; while (cin >> n) { while (!(n % 2) && n > 2) { n /= 2; } if (n == 1 || n == 2) { cout 더보기
PKU 1547. Clay Bully. AC get. #include #include using namespace std; int main() { int num, sum, s[10], i, a, b, c, avg; string names[10], robber, robbed; while (cin >> num) { sum = 0; if (num == -1) { break; } for (i = 0; i > a >> b >> c >> names[i]; s[i] = a * b * c; sum += s[i]; } avg = sum / i; for (i = 0; i avg) { robber = names[i]; } if (s[i] < avg) { robbed = names[i]; } } cout 더보기
PKU 2000. Gold Coins. AC get. #include int main() { int input, input_first, count, p, pay; while(scanf("%d", &input)) { pay = 0; if (input == 0) { break; } input_first = input; count = 1; p = 1; while(input != 0) { input--; pay += count; if (count == p) { p = 1; count++; } else { p++; } } printf("%d %d\n", input_first, pay); } } 걍 열심히 돌리는게 답입니다 =ㅁ=...; 더보기
PKU 2853. Sequence Sum Possibilities. AC get. #include #include int main() { int n, num, input, limit, i, cnt; scanf("%d", &n); while(n--) { scanf("%d%d", &num, &input); cnt = 0; for (i = 1; input > 0; i++) { input -= i; if (!(input % i)) { cnt++; } } printf("%d %d\n", num, cnt - 1); } } ..... 숏코딩입니다. -_-; 더보기
PKU 2665. Trees. AC get. #include using namespace std; int main() { int trees, rodes, i, start, end; while (cin >> trees >> rodes) { if (trees == 0 && rodes == 0) { break; } trees++; for (i = 0; i > start >> end; trees -= (end - start + 1); } cout 더보기
PKU 3673. Cow Multiplication. AC get! #include #include char temp1[256], temp2[256]; int main() { int lt1, lt2, i, j, sum = 0; scanf("%s%s", temp1, temp2); lt1 = strlen(temp1); lt2 = strlen(temp2); for (i = 0; i < lt1; i++) { for (j = 0; j < lt2; j++) { sum = sum + (temp1[i] - '0') * (temp2[j] - '0'); } } printf("%d\n", sum); } 쉽습니다. 곱셈법이 변태같을 뿐; 더보기
PKU 1008, UVa 300. Maya Calendar. AC get. #include #include char *HaabMonth[18]={"pop", "no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu"}; char *TzolkinDay[20]={"imix", "ik", "akbal", "kan", "chicchan", "cimi", "manik", "lamat", "muluk", "ok", "chuen", "eb", "ben", "ix", "mem", "cib", "caban", "eznab", "canac", "ahau"}; int main() { int n, i; int year, mon.. 더보기
PKU1218. The Drunk Jailer. Ac get =_=... #include #include using namespace std; int main() { int n, temp, i; cin >> n; for (i = 0; i > temp; cout 더보기