A.
水题:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
cout<<c<<" "<<a<<" "<<b;
return 0;
}
B
水题:
#include<bits/stdc++.h>
using namespace std;
long long a[105];
int main(){
long long n,m;
cin>>n>>m;
long long tot = 0;
for(int i = 1;i<=n;i++){
cin>>a[i];
tot+=a[i];
a[i] = a[i] * 4 *m;
}
long long num =0;
long long res = tot;
for(int i=1;i<=n;i++){
if(a[i] >= res) num++;
}
if(num >= m) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
return 0;
}
C
水题:
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,k;
cin>>n>>k;
if(k == 1){
cout<<"0"<<endl;
return 0;
}
if(n>=k){
long long res = n % k;
n = n% k;
}
long long ans = min(abs(n-k),n);
cout<<ans<<endl;
return 0;
}
D.
题意:就是给你一个性质,然后让你求出第k个这样性质的数是多少
思路:根据性质,无非是差为0,-1,1的这样的数,但不一定每个都有这样的三个数能找到,因为最后一个数为9的话,要进位,为0的话,自然-1那个实现不了。
#include <bits/stdc++.h>
using namespace std;
int main(){
int k;
cin >> k;
queue<long long int> q;
if(k<=12){
cout << k << endl;
return 0;
}
for(int i=1; i<10; i++){
q.push(i);
}
for(int i=1; i<k; i++){
long long int a = q.front();
q.pop();
if(a%10!=0) q.push(a*10+a%10-1);//这是差为-1的情况
q.push(a*10+a%10);//差为0的情况
if(a%10!=9) q.push(a*10+a%10+1);//差为1的情况
}
cout << q.front() << endl;
return 0;
}
E
#include <bits/stdc++.h>
using namespace std;
int n, k, c, j;
string s;
int l[200000], r[200000];
int main()
{
cin >> n >> k >> c >> s;
j = 0;
for (int i = 0; i < n; i++) {
if (s[i] == 'o') {
l[j] = i;
j++;
i += c;
}
}
j = 0;
for (int i = n - 1; i >= 0; i--) {
if (s[i] == 'o') {
r[k - 1 - j] = i;
j++;
i -= c;
}
if (k - 1 - j < 0)
break;
}
for (int i = 0; i < k; i++)
if(l[i] == r[i])
cout << l[i] + 1 << endl;
}
F
#include <iostream>
#include <vector>
#include <set>
#include <cstring>
#include <string>
#include <stack>
#include <algorithm>
using namespace std;
typedef long long ll;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
ll n;
cin >> n;
if (n == 2) {
cout << 1 << '\n'; return 0;
}
ll tmp = n - 1;
ll ans = 1;
for (ll i = 2; i * i <= n; i++) {
if (n % i == 0) {
if (n / i != i) {
ll cnt = n / i;
while (cnt %i == 0)cnt /= i;
if (cnt % i == 1) {
ans += 1;
}
}
else if (n / i == i) {
ans += 1;
}
}
}
// 3 , 4 2
ans += 1;
for (ll i = 2; i * i <= tmp; i++) {
if (tmp % i == 0) {
if (tmp / i == i) { ans += 1; }
else
ans += 2;
}
}
cout << ans << '\n';
}