A - Who Ate the Cake?
题意:
有三个嫌疑犯(1, 2, 3 (号码)) 现在有两个证人 他们指出谁不是嫌疑犯,你可以找到确定的那个罪人吗?
找到输出这个人的号码 没找到输出-1
思路:
如果两人指出的人是一个人 则输出-1 不是则输出6 - a - b,因为1 + 2 + 3 = 6(sum) 减去a, b肯定可以到达那个罪人
Code:
#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int a, b; cin >> a >> b; cout << (a == b ? -1 : 6 - a - b) << '\n'; return 0; }
Code:
a, b = map(int, input().split()) print(-1 if a == b else 6 - a - b)
B - Piano 2
题意:
n长度的数组a和m长度的数组b合并为c, c通过升序排序后是否可以找到连续两个包含a数组的元素,如果存在输出Yes,否则输出No
思路:
通过set自动升序储存a数组,a和b的元素储存进c数组排序完之后遍历数组的两个元素判断(set.count)是不是a数组,如果是输出Yes 否则输出No
Code:
#include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m; cin >> n >> m; set <int> st; vector <int> ver; for (int i = 0; i < n; i++) { int x; cin >> x; st.insert(x); ver.push_back(x); } for (int i = 0; i < m; i++) { int x; cin >> x; ver.push_back(x); } sort(ver.begin(), ver.end()); for (int i = 1; i < n + m; i++) { if (st.count(ver[i]) && st.count(ver[i - 1])) { cout << "Yes\n"; return 0; } } cout << "No\n"; return 0; }
标签:AtCoder,ver,cout,Contest,int,题解,cin,输出,数组 From: https://www.cnblogs.com/youhualiuh/p/18213066