#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分で解けるようにしておきたい。