60 分求调!

P10836 『FLA - I』歌静河

Ahws_rwhy @ 2024-08-03 21:31:19

#include <bits/stdc++.h>
using namespace std;
int n, m;
char a[100001], b[100001];
int sum, sum1;
int g;
int id;
bool flag = 0;
int t, t1;
int h;
int d = 0;
int f[100001];
int main() {
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        if (a[i] == '#' && flag == 0) id = i, flag = 1;
        if(a[i] == '#') 
        {
            d++;
            f[d] = i;
        }
    }
    for (int i = 0; i < n; i++) cin >> b[i];
    for (int i = 0; i < n; i++) {
        if (a[i] == '#') {
            sum++;
        }
        if (b[i] == '#') {
            sum1++;
        }
    }
    t = sum, t1 = sum1;
    if(t == 0) {cout << a;return 0;}
    if(t1 == 0)
    {
        for(int i = 0; i < n; i++)
        {
            if(a[i] == '#')
            {
                g++;
                a[i] = 'a' + (g - 1) % 26;
            }
        }
        cout << a;
        return 0;
    }
//  cout << t << " " << t1 << endl;r
    if (t1 < 26) {
        for (int i = 0; i < n; i++)
            if (a[i] == '#') g++, a[i] = 'a' + (g - 1) % 26;
    } else if (t1 >= 26) {
      while(sum1 > 26) 
        {
            h++;
            a[f[h]] = 'a';
            g += 26;
            sum1 -= 25;
        }
        if (sum1 <= 26) {
            for (int i = f[h] + 1; i < n; i++) {
                if (a[i] == '#') {
                    g ++;
                    a[i] = 'a' + (g - 1) % 26;
                }
            }
        }
//          cout << g << endl;
    }
//          if ((g) % 26 == 0) {
//              h++;
//              g++;
//              a[f[h]] = 'a';
//          }
//      }
//          if(t1 < 26)
//          {
//              for(int i = f[h] + 1; i < n; i++)
//              {
//                  if(a[i] == '#')
//                  {
//                      g++;
//                      a[i] = 'a' + (g - 1) % 26;
//                  }
//              }
//          }
    cout << a;
    return 0;
}

不求改对,给个 Hack 就行了


|