AtCoder Beginner Contest 083
A
模拟一下即可。
1 2 3 4 5 6 7 8 9 10
| #include <iostream> using namespace std; int main() { int a, b, c, d; cin >> a >> b >> c >> d; (a + b > c + d) ? (cout << "Left\n") : ((a + b == c + d) ? (cout << "Balanced\n") : (cout << "Right\n")); return 0; }
|
B
直接模拟即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| #include<iostream> using namespace std; int n,a,b; int pa(int x) { int k = 0; while(x>0) { k+=x%10; x/=10; } if(k>=a&&k<=b)return 1; else return 0; } int main() { cin>>n>>a>>b; int sum = 0; for(int i=1;i<=n;i++) { if(pa(i))sum+=i; } cout<<sum<<endl; return 0; }
|
C
直接模拟即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include<iostream> using namespace std; long long a,b; int main() { cin>>a>>b; long long sum = 0; while(a<=b) { sum++; a*=2; } cout<<sum<<endl; }
|
D
由于每次都是修改最长的一段,每次只需要出现不同,就修改两段当中最长的一段,这样去取得最小值即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <bits/stdc++.h> using namespace std; string s; int ans = 1 << 30; int main() { cin >> s; for (int i = 1; i < s.length(); i++) if (s[i] != s[i - 1]) ans = min(ans, max(i, int(s.length()) - i)); cout << min(ans, int(s.length())) << endl; return 0; }
|