AtCoder Beginner Contest #63
問題はこちらからどうぞ.
問題A: Restricted
#include <iostream> using namespace std; int main(){ int a, b; cin >> a >> b; if(10 <= a + b) cout << "error" << endl; else cout << a + b << endl; }
問題B: Varied
#include<bits/stdc++.h> #define rep(i, n) REP(i, 0, n) #define REP(i, a, n) for(int i = a ; i < (int)n ; i++) using namespace std; signed main(){ string s; cin >> s; set<char> st; rep(i, s.size()){ st.insert(s[i]); } if((int)s.size() == (int)st.size()) cout << "yes" << endl; else cout << "no" << endl; }
問題C: Bugged
#include<iostream> #include<vector> #include<algorithm> #define rep(i, n) REP(i, 0, n) #define REP(i, a, n) for(int i = a ; i < (int)n ; i++) #define pb push_back using namespace std; signed main(){ int n; cin >> n; int sum = 0; vector<int> v; int in; rep(i, n){ cin >> in; sum += in; if(in%10 != 0) v.pb(in); } sort(v.begin(), v.end()); rep(i, v.size()){ if(sum % 10 != 0) break; sum -= v[i]; } if(sum % 10 == 0) sum = 0; cout << sum << endl; }
問題D: Widespread
#include<bits/stdc++.h> #define rep(i, n) REP(i, 0, n) #define REP(i, a, n) for(int i = a ; i < (int)n ; i++) using namespace std; typedef long long ll; int h[100001]; ll n, a, b; bool check(ll t){ ll cnt = 0; rep(i, n){ if(h[i] > b * t){ cnt += (h[i] - b * t) / (a-b); if(((h[i] - b * t) % (a - b)) != 0) cnt++; } } return cnt <= t; } signed main(){ scanf("%lld %lld %lld", &n, &a, &b); rep(i, n) scanf("%d", h+i); ll l, r, mid, ans; l = 0; r = 1e9; while(l <= r){ mid = (l + r) / 2; if(check(mid)){ ans = mid; r = mid - 1; }else{ l = mid + 1; } } cout << ans << endl; }