015/CodeForces
/CodeForces/CodeForces/1250A - The Longest Cycle (C) (C).cpp
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e5 + 5, mod = 1e9 + 7;
int n, m, k, p, a[N], b[N], c[N], d[N], g[N];
vector<int> g1[N], g2[N], g3[N];
int vis[N], vis1[N], vis2[N], vis3[N], vis4[N];
int dp[N];
void dfs1(int u) {
vis[u] = 1;
for (int v : g1[u]) {
if (!vis[v]) {
vis1[v] = 1;
dfs1(v);
}
}
}
void dfs2(int u) {
vis[u] = 1;
for (int v : g2[u]) {
if (!vis[v]) {
vis2[v] = 1;
dfs2(v);
}
}
}
void dfs3(int u) {
vis[u] = 1;
for (int v : g3[u]) {
if (!vis[v]) {
vis3[v] = 1;
dfs3(v);
}
}
}
void dfs4(int u) {
vis[u] = 1;
for (int v : g2[u]) {
if (!vis[v]) {
vis4[v] = 1;
dfs4(v);
}
}
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m >> k;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= n; i++) {
cin >> b[i];
}
for (int i = 1; i <= n; i++) {
cin >> c[i];
}
for (int i = 1; i <= n; i++) {
cin >> d[i];
}
for (int i = 1; i <= m; i++) {
cin >> p;
g1[p].push_back(i);
g2[p].push_back(i + m);
g3[p].push_back(i + m * 2);
}
for (int i = 1; i <= n; i++) {
dfs1(i);
dfs2(i);
dfs3(i);
dfs4(i);
}
for (int i = 1; i <= n; i++) {
if (vis[i] && vis1[i] && vis2[i] && vis3[i] && vis4[i]) {
cout << "YES" << endl;
return 0;
}
}
cout << "NO" << endl;
return 0;
}
/CodeForces/CodeForces/1168A - Oddities (A).cpp
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e3 + 5, mod = 1e9 + 7;
int n, m, k;
int a[N], b[N];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m >> k;
for (int i = 1; i <= n; i++) cin >> a[i];
for (int i = 1; i <= m; i++) {
cin >> b[i];
if (i == m) {
a[n + 1] = b[i];
}
}
sort(a + 1, a + n + 2);
for (int i = 1; i <= n; i++) {
if (a[i] + k < a[i + 1]) {
cout << "YES" << endl;
return 0;
}
}
cout << "NO" << endl;
return 0;
}
/CodeForces/CodeForces/1005B - Vasya and the Last Digit (B).cpp
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5, M = 1e9 + 7;
int n, m, k, a[N];
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m >> k;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
for (int i = 1; i <= m; i++) {
if (a[i] % k == 0) {
cout << i << endl;
return 0;
}
}
for (int i = 1; i <= n; i++) {
a[i] = a[i] % k;
}
sort(a + 1, a + n + 1);
for (int i = 1; i <= n; i++) {
if (a[i] == 0) {
cout << i << endl;
return 0;
}
}
cout << -1 << endl;
return 0;
}
/CodeForces/CodeForces/1185B - Counting Subsets with Sum Div