AtCoder Beginner Contest 343 参加記録
2024-03-03
競プロ
はじめに
AtCoder Beginner Contest 343)に参加した記録です。
久しぶりに緑パフォーマンスが出せて嬉しいです。

A問題
A+Bを計算し、計算結果とは、違う数字を0~9の中で探し、出力しました。
int main(void){
int A, B; cin >> A >> B;
REP(i,10){ if(i != (A+B)){ cout << i << endl; return 0; }
}
return 0;
}B問題
1が入力されたときのインデックスを出力するように実装しました。
int main(void){
int N; cin >> N;
REP(i,N){ REP(j,N){ int A; cin >> A; if(A == 1) cout << j + 1 << ' '; } cout << endl; }
return 0;
}C問題
x*x*x <= Nを満たし、かつ回文となるようなxの最大値を求めました。
bool isOk(ll k){ string s = to_string(k);
REP(i,s.length()/1){ if(s[i] != s[s.length()-1-i]) return false; }
return true;
}
int main(void){
ll N; cin >> N;
ll ans = 0; for(ll x=0;(x*x*x)<=N;x++){ ll k = x*x*x;
if(isOk(k)) ans = max(ans, k); }
cout << ans << endl;
return 0;
}D問題
ある得点が何人いるかをmapで保持、ある人の現在の点数をvectorで用意し、 各タイミングでの得点の種類を出力しました。
int main(void){
int N, T; cin >> N >> T;
vector<ll> p(N+1); map<ll, int> m;
m[0] = N;
REP(i,T){ int A, B; cin >> A >> B; ll prev = p[A]; ll now = B + p[A]; p[A] = now;
m[prev]--; m[now]++;
if(m[prev] == 0){ m.erase(prev);
}
cout << m.size() << endl; }
return 0;
}同じカテゴリの記事
2025-05-14
BFS(幅優先探索)メモ 2024-08-18
AtCoderで緑になるまでにやったこと 2024-05-20
AtCoder Beginner Contest メモ 2024-03-10
AtCoder Beginner Contest 344 参加記録 2024-03-03
AtCoder Beginner Contest 343 参加記録 2024-02-25
AtCoder Beginner Contest 342 参加記録