105日目
今日は、灰色2問と茶色1問を解きました。
問題 | 難易度 | 自力で解けた | かかった時間 |
---|---|---|---|
ABC097 | B | ◯ | 34分37秒 |
ABC049 | B | ◯ | 2分26秒 |
ARC109 | B | ✕ | 182分 |
ABC097_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>;
const int INF = 2e9;
int main(){
int x;
cin >> x;
int ans = 1;
for(int i = 2;i*i <= x;i++){
int r = i*i;
while(r*i <= x){
r *= i;
}
ans = max(ans ,r);
}
cout << ans << endl;
}
解くのにかかった時間:34分37秒
感想:i=1の場合にwhileでTLEになることに全然気づけなかった。
ABC049_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>;
const int INF = 2e9;
int main(){
int h,w;
cin >> h >> w;
rep(i,h){
string s;
cin >> s;
cout << s << endl;
cout << s << endl;
}
}
解くのにかかった時間:2分26秒
ARC109_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>;
const int INF = 2e9;
int main(){
ll n;
cin >> n;
ll m = sqrt(n+1) + 1;
while((m + 1)*m/2 <= n+1)m++;
cout << n - m + 2 << endl;
}
解くのにかかった時間:182分
感想:ある程度考え方は正しかったのにコードをうまくかけなかった。
最後に
茶色の問題をせめて30分で解けるようにしておきたい。