Codeforces Round 954 (Div. 3) A -D_哔哩哔哩_bilibili
讲解都在视频里噢!
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin >> T;
while (T--)
{
int a, b, c;
cin >> a >> b >> c;
vector<int> arr({a, b, c});
sort(arr.begin(), arr.end());
cout << arr[2] - arr[0] << endl;
}
}
#include<bits/stdc++.h>
using namespace std;
int di[4] = {-1, 1, 0, 0};
int dj[4] = {0, 0, -1, 1};
bool valid(int n, int m, int i, int j)
{
if (i < 0 || i >= n)
return false;
if (j < 0 || j >= m)
return false;
return true;
}
bool operation(vector<vector<int>> &a, int i, int j)
{
int n = a.size(), m = a[0].size();
vector<int> temp;
for (int k = 0; k < 4; k++)
if (valid(n, m, i + di[k], j + dj[k]))
temp.push_back(a[i + di[k]][j + dj[k]]);
sort(temp.begin(), temp.end());
int &dig = a[i][j];
if (dig > *temp.rbegin())
dig = *temp.rbegin();
}
int main()
{
int T;
cin >> T;
while (T--)
{
int n, m;
cin >> n >> m;
vector<vector<int>> a(n, vector<int>(m, 0));
for (auto &i : a)
for (auto &j : i)
cin >> j;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
{
operation(a, i, j);
}
for (auto i : a)
{
for (auto j : i)
cout << j << ' ';
cout << endl;
}
}
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
int T;
cin >> T;
while (T--)
{
int n, m;
cin >> n >> m;
string s;
cin >> s;
set<int> S;
for (int i = 0; i < m; i++)
{
int dig;
cin >> dig;
S.insert(dig);
}
cin.get();
vector<char> a(m);
for (auto &i : a)
cin >> i;
sort(a.begin(), a.end());
int k = 0;
for (auto i : S)
{
s[i - 1] = a[k];
k++;
}
cout << s << endl;
}
}
#include<bits/stdc++.h>
using namespace std;
#define int long long
int join(char a, char b)
{
return (a - '0') * 10 + b - '0';
}
int solve(int n, string s)
{
if (n == 2)
return (s[0] - '0') * 10 + s[1] - '0';
int cnt = 0;
for (auto i : s)
if (i == '0')
cnt++;
if (n > 3 && cnt || s[0] == '0' || s[n - 1] == '0')
return 0;
int sum = 0;
for (auto i : s)
if (i != '1')
sum += i - '0';
int ans = LLONG_MAX;
for (int i = 0; i < n - 1; i++)
{
int dig = sum;
if (s[i] != '1')
dig -= s[i] - '0';
if (s[i + 1] != '1')
dig -= s[i + 1] - '0';
if (join(s[i], s[i + 1]) != 1)
dig += join(s[i], s[i + 1]);
ans = min(ans, dig);
}
return ans == 0 ? 1 : ans;
}
signed main()
{
int T;
cin >> T;
while (T--)
{
int n;
string s;
cin >> n >> s;
cout << solve(n, s) << endl;
}
}