怪文書
問題
C – 怪文書
プログラミング初級者から上級者まで楽しめる、競技プログラミングコンテストサイト「AtCoder」。オンラインで毎週開催プログラミングコンテストを開催しています。競技…
記録
- 2021/1/15 解法を思いつくが実装できず。
解法
- \(S_i\) で使われているアルファベットの数を数える。
- 各アルファベットで、\(S_1\) から \(S_n\) までで使われている回数の最小値だけ使うことができる。
コード例
#include <bits/stdc++.h> using namespace std; #include <atcoder/all> using namespace atcoder; using ll = long long; using P = pair<int, int>; #define rep(i, n) for(int i = 0; i < (n); ++i) // using mint = modint998244353; // using mint = modint1000000007; // const int mod = 1000000007; // const ll INF = 1LL << 62; // const int INF = 1001001001; int main() { int n; cin >> n; vector<string> S(n); rep(i, n) { cin >> S[i]; } vector<int> cnt(26, 100); rep(i, n) { int n2 = S[i].size(); map<int, int> mp; rep(j, n2) { mp[S[i][j] - 'a']++; } rep(j, 26) { cnt[j] = min(cnt[j], mp[j]); } } rep(i, 26) { int n2 = cnt[i]; rep(j, n2) { cout << char(97 + i); } } cout << endl; return 0; }