Witam! Proszę o pomoc z ponizszym programem. Jego złozonośc czasowa jest zbyt duża, a chciałabym , zeby wynosiła 15 sekund. Jeśli ktoś z forumowiczów wiedziałby jak temu zadziałac, i mi to wyjasnił lub dał wskazówki byłabym ogromnie wdzięczna . Zadaniem programu , jest to żeby sprawdzał ile kombinacji liter można "zrobic" mając dwa nazwiska np.:
3
ABC
CBA
- wynik to 2 , a oto kod programu w C++:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int n;
string a, b;
cin >> n >> a >> b;
int w = 0;
for(int i = 0; i < n; i++)
{
if(a[i] != b[i])
{
for(int j = i+1; j < n; j++)
{
if(a[i] == b[j])
{
w += j-i;
char h = b[i];
b[i] = b[j];
b[j] = h;
break;
}
}
}
}
cout << w;
}