으음...
N^2 밖에 모르겠다...
뭔가 좌우 대칭이고 뭉텅이로 바뀌고 하는 거 보면 특징 있을 것 같은데 모르겠다....
gjr???
풀었다
바뀐 횟수 센 다음에
i = 0부터 i = size()/2까지 반복문 돌면서 계속 더해나가는데
합이 홀수라면 뒤집어야하고 합이 짝수라면 안 뒤집어도 된다.
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <stack>
#include <set>
using namespace std;
using i64 = long long;
int main() {
string s;
cin >> s;
int m;
cin >> m;
vector<int> count((s.size()+1)/2, 0);
for (int i = 0; i < m; i++)
{
int tmp;
cin >> tmp;
count[tmp-1]++;
}
if (count[0] % 2 == 1)
{
char tmp;
tmp = s[0];
s[0] = s[s.size()-1];
s[s.size()-1] = tmp;
}
for (int j = 1; j < (s.size()+1)/2; j++)
{
count[j] += count[j-1];
if (count[j] % 2 == 1)
{
char tmp;
tmp = s[j];
s[j] = s[s.size()-1-j];
s[s.size()-1-j] = tmp;
}
}
for (int i = 0; i < s.size(); i++)
{
cout << s[i];
}
return 0;
}
끝~~
얼른 E번까지 끝내봐야지
'코드포스' 카테고리의 다른 글
[코드포스 Practice18] 후기 (0) | 2020.04.16 |
---|---|
[코드포스 Practice17] E. Day at the Beach (0) | 2020.04.11 |
[코드포스 Practice17] C. MUH and Important Things (0) | 2020.04.11 |
[코드포스 Practice17] B. Bus of Characters (0) | 2020.04.11 |
[코드포스 Practice17] A. Vladik and flights (0) | 2020.04.11 |