AtCoder Beginner Contest 342 参加記録
2024-02-25
競プロ
はじめに
AtCoder Beginner Contest 342に参加した記録です。

A問題(Yay!)
無駄な手順が多いですが、とりあえず、ACできました。
- 1つだけの文字を取得
- その文字のインデックスを取得
const int INF = 1e9;
int main(void){
string s; cin >> s;
map<char, int> m;
REP(i,s.length()){ m[s[i]]++; }
char c; REP(i,s.length()){ if(m[s[i]] == 1){ c = s[i]; } }
REP(i,s.length()){ if(s[i] == c){ cout << i + 1 << endl; } }
return 0;
}B問題(Which is ahead?)
人の番号をインデックスに持つ配列を用意し、その要素には、人の並んでいる順番を持つようにしました。
int main(void){
int N; cin >> N; vector<int> P(N+1);
REP(i,N){ int p; cin >> p; P[p] = i; }
int Q; cin >> Q;
vector<int> A(Q), B(Q); REP(i,Q){ cin >> A[i] >> B[i]; }
REP(i,Q){ int ans = min(P[A[i]], P[B[i]]); if(P[A[i]] < P[B[i]]) cout << A[i] << endl; else cout << B[i] << endl; }
return 0;
}C問題(Many Replacement)
アルファベットの変換表を用意し、操作を変換表に反映させます。 最後に、その変換表を使って文字列Sを変換して表示します。
int main(void){
int N; cin >> N; string S; cin >> S;
int Q; cin >> Q; vector<char> to(26);
REP(i,26){ to[i] = i+'a'; }
REP(i,Q){ char c, d; cin >> c >> d; REP(j,26){ if(to[j] == c){ to[j] = d; } } }
REP(i,N){ cout << to[S[i]-'a']; } cout << 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 参加記録