57日目
今回はA問題を2問、B問題を2問、C問題を2問を解き、とバーチャル参加を1回して、
ABC168に参加しました。
|問題|難易度|自力で解けた|かかった時間|
|:-:|:-:|:-:|---|---|
|ABC002|A|◯|1分35秒|
|ABC002|B|◯|13分14秒|
|ABC001|A|◯|1分5秒|
|ABC001|B|◯|60分22秒|
|ABC071|C|✕|69分19秒|
|ABC070|C|✕|94分44秒|
ABC002
A
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
int main(){
int x,y;
cin >> x >> y;
cout << max(x,y) << endl;
}
解くのにかかった時間:1分35秒
B
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using pil = pair<pii,int>;
int main(){
string w;
cin >> w;
int t = w.size();
rep(i,t){
if(w[i] == 'a' || w[i] == 'i' || w[i] == 'u' || w[i] == 'e' || w[i] == 'o' ){
continue;
}
else cout << w[i];
}
cout << endl;
}
解くのにかかった時間:13分14秒
ABC001
A
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
int main(){
int a,b;
cin >> a >> b;
cout << a-b << endl;
}
解くのにかかった時間:1分5秒
B
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using pil = pair<pii,int>;
int main(){
int s;
cin >> s;
if(s < 1000)cout << 0 << s/100 << endl;
if(1000 <= s && s <= 5000) cout << s/100 << endl;
if(6000 <= s && s <= 30000) cout << s/1000 + 50 << endl;
if(35000 <= s && s <= 70000) cout << (s/1000 - 30)/5 + 80 << endl;
if(70000 < s)cout << 89 << endl;
}
解くのにかかった時間:60分22秒
感想:70kmがどの範囲に入るかで少し悩んだ
ABC166
A
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
int main(){
string s;
cin >> s;
if(s[1] == 'B')cout << "ARC" << endl;
else cout << "ABC" << endl;
}
B
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using pil = pair<pii,int>;
int main(){
int n,k;
cin >> n >> k;
vector<int> d(k);
set<int> s;
rep(i,k){
cin >> d[i];
vector<int> a(d[i]);
rep(j,d[i]){
cin >> a[j];
s.insert(a[j]);
}
}
int t = s.size();
cout << n - t << endl;
}
C
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
int main(){
int n,m;
cin >> n >> m;
vector<int> h(n+1);
vector<bool> s(n+1);
for(int i = 1;i <= n;i++){
cin >> h[i];
s[i] = true;
}
for(int i = 1;i <= m;i++){
int a,b;
cin >> a >> b;
if(h[a] <= h[b]) s[a] = false;
if(h[a] >= h[b]) s[b] = false;
}
int ans = 0;
for(int i = 1;i <= n;i++){
if(s[i])ans++;
}
cout << ans << endl;
}
D
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using pil = pair<pii,int>;
int main(){
ll x;
cin >> x;
for(int i = -200; i <= 200;i++){
for(int j = -200; j <= 200;j++){
ll s = pow(i,5);
ll t = pow(j,5);
if((s - t) == x){
cout << i << " " << j << endl;
return 0;
}
}
}
}
感想:C問題は少し間に合わなかったが、久しぶりに解いて自力でDまで解けた。
ABC071_C
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
int main(){
int n;
cin >> n;
vector<ll> a(n);
rep(i,n)cin >> a[i];
ll x = -1,y = 0;
sort(a.rbegin(),a.rend());
rep(i,n-1){
if(a[i] != a[i+1]) continue;
if(x == -1){
x = a[i];
i++;
}
else{
y = a[i];
break;
}
}
ll ans = x*y;
cout << ans << endl;
}
解くのにかかった時間:69分19秒
感想:どうxとyを定めればいいのかわからなかった。
ABC070_C
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
ll gcd(ll a,ll b){
if(b == 0) return a;
return gcd(b,a%b);
}
ll lcm(ll a,ll b){
ll g = gcd(a,b);
return a / g * b;
}
int main(){
int n;
cin >> n;
ll ans = 1;
rep(i,n){
ll t;
cin >> t;
ans = lcm(ans,t);
}
cout << ans << endl;
}
解くのにかかった時間:94分44秒
感想:なかなか答えにたどり着けなかった。
ABC168
A
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
int main(){
int n;
cin >> n;
n %= 10;
if(n == 2 || n == 4 || n == 5 || n == 7 || n == 9) cout << "hon" << endl;
else if(n == 0 || n == 1 || n == 6 || n == 8) cout << "pon" << endl;
else cout << "bon" << endl;
}
B
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
using pil = pair<pii,int>;
int main(){
int k;
cin >> k;
string s;
cin >> s;
int t = s.size();
if(t <= k)cout << s << endl;
else{
s = s.substr(0,k);
cout << s << "..." << endl;
}
}
C
# include <bits/stdc++.h>
# define rep(i,n) for(int i = 0;i < (n);i++)
using namespace std;
using ll = long long;
using pii = pair<int,int>;
double pi = 3.141592653589793;
int main(){
int a,b,h,m;
cin >> a >> b >> h >> m;
double x,y;
x = 30*h + 0.5*m;
y = m*6;
double r = abs(x-y);
double k = min(r,360-r);
k /= 180;
double c = cos(pi*k);
double xx = a*a + b*b - 2*a*b*c;
double ans = pow(xx,0.5);
cout << fixed << setprecision(10) << ans << endl;
}
最後に
ABC168のC問題で始めてcosやsinを使おうとしたのでかなり手間取ってしまった。ラジアンとπラジアンをちゃんと区別するべきだった。
難易度 | かかった平均時間 | 解けた問題数 |
---|---|---|
A | 1分20秒 | 2問中2問 |
B | 36分33秒 | 2問中2問 |