fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. ios::sync_with_stdio(false);
  6. cin.tie(nullptr);
  7.  
  8. int N;
  9. cin >> N;
  10. string SS, SK, SH;
  11. cin >> SS >> SK >> SH;
  12.  
  13. string S(N, 'a');
  14. int scoreS = 0, scoreK = 0, scoreH = 0;
  15.  
  16. // 기본: 숭돌이 답으로 설정
  17. for (int i = 0; i < N; i++) {
  18. S[i] = SS[i];
  19. }
  20. scoreS = N;
  21.  
  22. // 숭돌이 점수를 조금 떼어서 고돌이 점수 확보
  23. for (int i = 0; i < N; i++) {
  24. if (SK[i] != SH[i]) {
  25. if (S[i] == SS[i] && S[i] != SK[i]) {
  26. // 숭돌이 점수 1 → 고돌이 점수 1
  27. S[i] = SK[i];
  28. scoreS--;
  29. scoreK++;
  30. }
  31. }
  32. }
  33.  
  34. // 그래도 순위 조건이 안 되면, 숭돌이와 한돌이 동점 자리 조정
  35. for (int i = 0; i < N; i++) {
  36. if (!(scoreS > scoreK && scoreK > scoreH)) {
  37. // 한돌이만 점수 깎기 (셋 다 틀리게)
  38. if (S[i] == SH[i]) {
  39. for (char c = 'a'; c <= 'z'; c++) {
  40. if (c != SS[i] && c != SK[i] && c != SH[i]) {
  41. S[i] = c;
  42. break;
  43. }
  44. }
  45. scoreH--;
  46. }
  47. }
  48. }
  49.  
  50. if (scoreS > scoreK && scoreK > scoreH) {
  51. cout << S << "\n";
  52. } else {
  53. cout << -1 << "\n";
  54. }
  55.  
  56. return 0;
  57. }
Success #stdin #stdout 0.01s 5276KB
stdin
5
aaaaa
aaaab
aaaac
stdout
aaaab