Atcorder153
https://atcoder.jp/contests/abc153/tasks
A問題.c++
#include <bits/stdc++.h>
#define rep(i,n) for (int i=0; i<(n); i++)
using namespace std;
typedef long long ll;
typedef pair<int,int> P;
int main(){
int H,A; cin >> H >> A;
int ans=H/A;
if (H%A!=0) ans++;
cout << ans << endl;
}
#B問題
B問題.c++
#include <bits/stdc++.h>
#define rep(i,n) for (int i=0; i<(n); i++)
using namespace std;
typedef long long ll;
typedef pair<int,int> P;
int main(){
int H,N; cin >> H >> N;
vector <int> A(N);
int sum=0;
rep(i,N){
cin >> A[i];
sum+=A[i];
}
if (sum>=H) cout << "Yes" << endl;
else cout << "No" << endl;
}
#C問題
C問題.c++
#include <bits/stdc++.h>
#define rep(i,n) for (int i=0; i<(n); i++)
using namespace std;
typedef long long ll;
typedef pair<int,int> P;
int main(){
int N,K; cin >> N >> K;
vector <int> H(N);
rep(i,N) cin >> H[i];
ll ans=0;
sort(H.begin(),H.end());
rep(i,N-K) ans+=H[i];
cout << ans << endl;
return 0;
}
D問題.c++
#include <bits/stdc++.h>
#define rep(i,n) for (int i=0; i<(n); i++)
using namespace std;
typedef long long ll;
typedef pair<int,int> P;
int main(){
ll H; cin >> H;
ll tmp=0;
while(1){
if (pow(2,tmp)<=H && H<pow(2,tmp+1)) break;
tmp++;
}
ll ans=0;
for (int i=0; i<=tmp; i++) ans+=pow(2,i);
cout << ans << endl;
return 0;
}
#まとめ
・D問題 何個か実験してみて法則性を見つける!