diff options
Diffstat (limited to 'works/life/algorithm-contest-2/solution')
| -rw-r--r-- | works/life/algorithm-contest-2/solution/1.cpp | 34 | ||||
| -rw-r--r-- | works/life/algorithm-contest-2/solution/2.cpp | 41 | ||||
| -rw-r--r-- | works/life/algorithm-contest-2/solution/3.cpp | 77 | ||||
| -rw-r--r-- | works/life/algorithm-contest-2/solution/4.cpp | 48 | ||||
| -rw-r--r-- | works/life/algorithm-contest-2/solution/5-bf.cpp | 34 | ||||
| -rw-r--r-- | works/life/algorithm-contest-2/solution/5.cpp | 49 | 
6 files changed, 0 insertions, 283 deletions
diff --git a/works/life/algorithm-contest-2/solution/1.cpp b/works/life/algorithm-contest-2/solution/1.cpp deleted file mode 100644 index 2689f9d..0000000 --- a/works/life/algorithm-contest-2/solution/1.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include <iostream>
 -#include <cstdio>
 -#include <cstring>
 -#include <algorithm>
 -#include <vector>
 -#include <queue>
 -#include <stack>
 -#include <set>
 -#include <map>
 -#include <cmath>
 -#include <unordered_map>
 -#include <unordered_set>
 -#include <string>
 -#include <sstream>
 -#include <climits>
 -#define x first
 -#define y second
 -#define pub push_back
 -#define mp make_pair
 -#define ll long long
 -using namespace std;
 -
 -int x, y;
 -
 -int main(void) {
 -    cin >> x >> y;
 -    int ans = x;
 -    while (x >= y) {
 -        ans += x / y;
 -        x = x / y + x % y;
 -    }
 -    cout << ans;
 -    return 0;
 -}
\ No newline at end of file diff --git a/works/life/algorithm-contest-2/solution/2.cpp b/works/life/algorithm-contest-2/solution/2.cpp deleted file mode 100644 index 4410da0..0000000 --- a/works/life/algorithm-contest-2/solution/2.cpp +++ /dev/null @@ -1,41 +0,0 @@ -#define _CRT_SECURE_NO_WARNINGS
 -#include <iostream>
 -#include <cstdio>
 -#include <cstring>
 -#include <algorithm>
 -#include <vector>
 -#include <queue>
 -#include <stack>
 -#include <set>
 -#include <map>
 -#include <cmath>
 -#include <unordered_map>
 -#include <unordered_set>
 -#include <string>
 -#include <sstream>
 -#include <climits>
 -#define x first
 -#define y second
 -#define pub push_back
 -#define mp make_pair
 -#define ll long long
 -using namespace std;
 -typedef pair<int, int> PII;
 -
 -const int MAXN = 1e5 + 5;
 -int n, a[MAXN];
 -
 -int main(void) {
 -    cin >> n;
 -    for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
 -    sort(a + 1, a + 1 + n);
 -    
 -    int l = 1, r = n;
 -    ll ans = 0;
 -    
 -    while (l < r) {
 -        ans += (a[r--] - a[l++]);
 -    }
 -    cout << ans;
 -    return 0;
 -}
\ No newline at end of file diff --git a/works/life/algorithm-contest-2/solution/3.cpp b/works/life/algorithm-contest-2/solution/3.cpp deleted file mode 100644 index a97e351..0000000 --- a/works/life/algorithm-contest-2/solution/3.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include <iostream>
 -#include <cstdio>
 -#include <cstring>
 -#include <algorithm>
 -#include <vector>
 -#include <queue>
 -#include <stack>
 -#include <set>
 -#include <map>
 -#include <cmath>
 -#include <unordered_map>
 -#include <unordered_set>
 -#include <string>
 -#include <sstream>
 -#include <climits>
 -#define x first
 -#define y second
 -#define pub push_back
 -#define mp make_pair
 -#define ll long long
 -using namespace std;
 -typedef pair<int, int> PII;
 -
 -struct node{
 -    int x, y;
 -    node(){}
 -    node(int _x = 0,int _y = 0): x(_x), y(_y){}
 -};
 -
 -int dir[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
 -int n;
 -vector<string> graph;
 -vector<vector<int>> vis;
 -
 -int solve() {
 -    queue<node> Q;
 -    for(int i = 0;i < n;++i){
 -        for(int j = 0;j < n;++j){
 -            if(graph[i][j] == '#') Q.push(node(i,j));
 -            vis[i][j] = 0;
 -        }
 -    }
 -    
 -    if(Q.size() == n * n || Q.empty()) return -1;
 -
 -    int dis = 0;
 -    while(!Q.empty()){
 -        int size = Q.size();
 -        while(size-- > 0){
 -            node cur = Q.front();
 -            Q.pop();
 -            for(int i = 0;i < 4;i++){
 -                int nextX = cur.x + dir[i][0];
 -                int nextY = cur.y + dir[i][1];
 -                if(nextX > -1 && nextX < n && nextY > -1 && nextY < n && graph[nextX][nextY] == '.' && !vis[nextX][nextY]){
 -                    vis[nextX][nextY] = 1;
 -                    Q.push(node(nextX,nextY));
 -                }
 -            }
 -        }
 -        if(!Q.empty()) dis += 1;
 -    }
 -    return dis;
 -}
 -
 -int main(void) {
 -    cin >> n;
 -    string line;
 -    vis.resize(n + 1, vector<int>(n + 1));
 -    for (int i = 0; i < n; i++) {
 -        cin >> line;
 -        graph.push_back(line);
 -    }
 -
 -    cout << solve();
 -    return 0;
 -}
\ No newline at end of file diff --git a/works/life/algorithm-contest-2/solution/4.cpp b/works/life/algorithm-contest-2/solution/4.cpp deleted file mode 100644 index 93c9190..0000000 --- a/works/life/algorithm-contest-2/solution/4.cpp +++ /dev/null @@ -1,48 +0,0 @@ -#define _CRT_SECURE_NO_WARNINGS
 -#include <iostream>
 -#include <cstdio>
 -#include <cstring>
 -#include <algorithm>
 -#include <vector>
 -#include <set>
 -#include <map>
 -#include <cmath>
 -#include <unordered_map>
 -#define x first
 -#define y second
 -#define pub push_back
 -#define MP make_pair
 -#define LL long long
 -using namespace std;
 -typedef pair<int, int> PII;
 -
 -const int MAXN = 1e5 + 5;
 -int n, k, h[MAXN], w[MAXN];
 -
 -bool check(int m) {
 -    if (m == 0) return true;
 -    int cnt = 0;
 -    for (int i = 0; i < n; i++) {
 -        cnt += (h[i] / m) * (w[i] / m);
 -    }
 -    return cnt >= k;
 -}
 -
 -int main(void) {
 -    cin >> n >> k;
 -    int mx = 0;
 -    for (int i = 0; i < n; i++) {
 -        scanf("%d", &h[i]);
 -        scanf("%d", &w[i]);
 -        mx = max(mx, max(h[i], w[i]));
 -    }
 -
 -    int l = 0, r = mx;
 -    while (l < r) {
 -        int m = (l + r + 1) >> 1;
 -        if (check(m)) l = m;
 -        else r = m - 1;
 -    }
 -    cout << r;
 -    return 0;
 -}
\ No newline at end of file diff --git a/works/life/algorithm-contest-2/solution/5-bf.cpp b/works/life/algorithm-contest-2/solution/5-bf.cpp deleted file mode 100644 index f197e6b..0000000 --- a/works/life/algorithm-contest-2/solution/5-bf.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include <iostream>
 -
 -int batteries[1000];
 -
 -int main(void) {
 -  int N, K;
 -  std::cin >> N >> K;
 -  for (int i = 0; i < N; i++)
 -    std::cin >> batteries[i];
 -
 -  int max = 0;
 -  int max_index[4];
 -
 -  for (int i = 0; i < N; i++) {
 -    for (int j = i + 1; j < N; j++) {
 -      for (int k = j + 1; k < N; k++) {
 -        for (int l = k + 1; l < N; l++) {
 -          int sum = batteries[i] + batteries[j] + batteries[k] + batteries[l];
 -          if (sum % K == 0 && sum > max) {
 -            max = sum;
 -            max_index[0] = i;
 -            max_index[1] = j;
 -            max_index[2] = k;
 -            max_index[3] = l;
 -          }
 -        }
 -      }
 -    }
 -  }
 -
 -  std::cout << max;
 -
 -  return 0;
 -}
 diff --git a/works/life/algorithm-contest-2/solution/5.cpp b/works/life/algorithm-contest-2/solution/5.cpp deleted file mode 100644 index b668f95..0000000 --- a/works/life/algorithm-contest-2/solution/5.cpp +++ /dev/null @@ -1,49 +0,0 @@ -#include <iostream>
 -#include <cstdio>
 -#include <cstring>
 -#include <algorithm>
 -#include <vector>
 -#include <queue>
 -#include <stack>
 -#include <set>
 -#include <map>
 -#include <cmath>
 -#include <unordered_map>
 -#include <unordered_set>
 -#include <string>
 -#include <sstream>
 -#include <climits>
 -#define x first
 -#define y second
 -#define pub push_back
 -#define mp make_pair
 -#define ll long long
 -using namespace std;
 -typedef pair<int, int> PII;
 -
 -int dp[1005][5][1005];
 -int n, K, a[1005];
 -
 -int main(void) {
 -    // freopen("3.in", "r", stdin);
 -    cin >> n >> K;
 -    for (int i = 1; i <= n; i++) cin >> a[i];
 -
 -    for (int i = 0; i < 1005; i++)
 -        for (int j = 0; j < 4; j++)
 -            for (int k = 0; k < 1005; k++)
 -                dp[i][j][k] = INT_MIN;
 -
 -    dp[0][0][0] = 0;
 -    
 -    for (int i = 1; i <= n; i++)
 -        for (int j = 0; j <= 4; j++)
 -            for (int k = 0; k < K; k++) {
 -                if (j == 0) dp[i][j][k] = dp[i - 1][j][k];
 -                else dp[i][j][k] = max(dp[i - 1][j][k], dp[i - 1][j - 1][((k - a[i]) % K + K) % K] + a[i]);
 -            }
 -                
 -
 -    cout << dp[n][4][0];
 -    return 0;
 -}
\ No newline at end of file  | 
