목록알고리즘/BOJ (14)
호빵이의 알고리즘
#include #include #include using namespace std; int N, x, y, d, g, cnt = 0; bool visited[101][101]; int dx[4] = {1,0,-1,0}; int dy[4] = {0,-1,0,1}; vector V[11]; void init() { for (int i = 0; i > N; for (int i = 0; i > x >> y >> d >> g; solve(); } find(); cout
#include #include using namespace std; int N, ret; int T[16], P[16]; int next_day, total = 0; void solve(int day, int sum) { if (day == N+1) { ret = max(ret, sum); return; } next_day = day + T[day]; total = sum + P[day]; if (next_day N; for (int i = 1; i > T[i] >> P[i]; solve(1, 0); cout
#include #include using namespace std; int N; pair P[100000]; int ans = 1; int main() { cin >> N; for (int i = 0; i > P[i].second >> P[i].first; } sort(P, P + N); int end = P[0].first; for (int i = 1; i = end) { end = P[i].first; ans++; } } cout
#include #include #include using namespace std; int A, P; vector D; int next_A, cnt; int solve() { D.push_back(A); while (1) { while (A != 0) { next_A += (int)pow(A % 10, P); A /= 10; } for (int i = 0; i > A >> P; cout
#include #include #include using namespace std; int N; class Student { public : string name; int Korean, English, Math; bool operator T.Korean) return true; if (Korean T.English) return false; if (Math > T.Math) return true; if (Math < T.Math)return false; if (name < T.name)return true; else return false; } }; Student ..
//분할정복 #include #include using namespace std; int N; char map[65][65]; string ans[1000]; int main() { cin >> N; for (int i = 0; i > map[i][j]; } } //먼저 N/2개. 4개가 될 때까지.. for (int i = 0; i < N; i+2) { for (int j = 0; j < N; j+2) { if (map[i][j] == map[i][j + 1] == map[i+1][j] == map[i+1][j+1]) { ans[i] = map[i][j]; } else { ans[i] = map[i][j] + map[i..
#include #include using namespace std; int price[1001]; int sum[1001]; int N; int main() { cin >> N; for (int i = 1; i > price[i]; sum[i] = price[i]; } for (int i = 2; i