A
#include <bits/stdc++.h>
using namespace std;
int x, y, d;
int main()
{
scanf("%d%d%d", &x, &y, &d);
x -= d << 1;
y -= d << 1;
if (x <= 0 || y <= 0) printf("0");
else printf("%d", x * y);
return 0;
}
B
#include <bits/stdc++.h>
#define ull unsigned long long
using namespace std;
const int p = 131;
const int maxn = 70000;
int n;
char s[25];
vector<ull> ve[128];
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
{
scanf("%s", s + 1);
ull a = 0;
for (int j = 1; s[j]; ++j) a = a * p + s[j];
ve[s[1]].emplace_back(a);
}
long long ans = 0;
for (int i = 0; i < 128; ++i)
{
sort(ve[i].begin(), ve[i].end());
int siz = ve[i].size();
for (int j = 0; j < siz; ++j)
{
int cnt = 1;
while (j + 1 < siz && ve[i][j] == ve[i][j + 1]) ++j, ++cnt;
ans += (siz - cnt) * cnt;
}
}
printf("%lld", ans);
return 0;
}
C
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
int n, f[maxn], ans, a;
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; ++i)
{
scanf("%d", &a);
f[a] = f[a - 1] + 1;
ans = max(ans, f[a]);
}
printf("%d", n - ans);
return 0;
}
D
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n;
vector<ll> ans;
int main()
{
scanf("%lld", &n);
for (ll i = 1; n % i == 0; i *= 5)
for (ll j = i; n % j == 0; j *= 2)
ans.emplace_back(j);
sort(ans.begin(), ans.end());
printf("%d\n", ans.size());
for (int i = 0; i < ans.size(); ++i) printf("%lld\n", ans[i]);
return 0;
}
F
#include <bits/stdc++.h>
using namespace std;
int n, len, a[101], k, p[10] = { 1 };
bool dfs(int cnt)
{
if (cnt > len) return true;
for (int i = 1; i <= 99; ++i)
{
if (!a[i]) continue;
int r = cnt - 1 + (i < 10 ? 1 : 2);
if (r > len) continue;
int jie = k % p[len + 1 - cnt] / p[len - r];
if (jie != i) continue;
--a[i];
if (dfs(r + 1)) return true;;
++a[i];
}
return false;
}
int main()
{
for (int i = 1; i <= 9; ++i) p[i] = p[i - 1] * 10;
scanf("%d%d", &k, &n);
while (p[++len] < k);
for (int i = 1; i <= n; ++i) scanf("%d", a), ++a[a[0]];
for (int i = 1; i <= 99; ++i)
{
++a[i];
if (dfs(1)) { printf("1"); return 0; }
--a[i];
}
printf("0");
return 0;
}
G
#include <bits/stdc++.h>
using namespace std;
int a[27];
char s[10000000];
int main()
{
scanf("%s", s + 1);
int flaga = 1, flagb = 1;
for (int i = 1; s[i]; ++i) ++a[s[i] - 'a'];
for (int i = 0; i < 26; ++i)
if (a[i])
{
if (a[i] & 1) flaga = 0;
else flagb = 0;
}
if (flaga) puts("0");
else if (flagb)puts("1");
else puts("2");
return 0;
}
J
#include <bits/stdc++.h>
#define P pair<int, int>
using namespace std;
int r, d, flag;
P a, b, c;
int calc(P a, P b)
{
return (a.first - b.first) * (a.first - b.first) +
(a.second - b.second) * (a.second - b.second);
}
bool work(P i)
{
int dis = calc(i, a);
if (dis < r * r) {printf("2"); return true;}
if (dis == r * r) flag = 1;
return false;
}
bool work(P a, P b, P c)
{
int flag = 0;
if (a.first >= b.first && a.first <= c.first)
{
int dis = min(abs(b.second - a.second), abs(c.second - a.second));
if (dis == r) flag = 1;
else if (dis < r) flag = 2;
}
if (flag) {printf("%d", flag); return true;}
return false;
}
int main()
{
scanf("%d%d%d", &a.first, &a.second, &r);
scanf("%d%d%d", &b.first, &b.second, &d);
c = {b.first + d, b.second + d};
if (work(b) || work(c) || work({b.first, c.second}) ||
work({c.first, b.second}));
else if (a.first >= b.first && a.first <= c.first &&
a.second >= b.second && a.second <= c.second) printf("2");
else if (work(a, b, c) || work({a.second, a.first},
{b.second, b.first}, {c.second, c.first}));
else if (flag) printf("1");
else printf("0");
return 0;
}
K
#include <bits/stdc++.h>
#define P pair<int, int>
using namespace std;
int n, ans, vis[15], flag;
P a[15], b[15];
bool work(P a, P b, P c)
{
if (c.first > a.first && c.first > b.first) return false;
if (c.first < a.first && c.first < b.first) return false;
if (c.second > a.second && c.second > b.second) return false;
if (c.second < a.second && c.second < b.second) return false;
int b1 = a.second - c.second, b2 = c.second - b.second;
if (b1 == 0 && b2 == 0) return true;
if (!b1 || !b2) return false;
int a1 = a.first - c.first, a2 = c.first - b.first;
if (a1 * b2 == a2 * b1) return true;
return false;
}
void dfs(int k, int cnt)
{
if (k == n) { flag = 1; ans = min(ans, cnt); return; }
if (cnt >= ans) return;
for (int i = n; i > 1; --i)
{
if (vis[i]) continue;
int flaga = 1;
for (int j = 1; j <= n && flaga; ++j)
if (work(a[i], a[k], b[j])) flaga = 0;
else if (j != i && j != k && work(a[i], a[k], a[j])) flaga = 0;
if (!flaga) continue;
vis[i] = 1; dfs(i, cnt + 1); vis[i] = 0;
}
}
int main()
{
scanf("%d", &n); ans = n - 1;
for (int i = 1; i <= n; ++i) scanf("%d%d", &a[i].first, &a[i].second);
for (int i = 1; i <= n; ++i) scanf("%d%d", &b[i].first, &b[i].second);
dfs(1, 0);
if (flag) printf("%d", ans);
else printf("-1");
return 0;
}