on
구름level 43205 오늘의 업무 씨쁠쁠/C++/CPP
구름level 43205 오늘의 업무 씨쁠쁠/C++/CPP
#include < iostream >
#include < string >
#include < map >
#include < algorithm >
using namespace std ;
int main() {
int n; int m;
cin > > n > > m;
string * orders = new string [m];
for ( int i = 0 ; i < m; i + + ){
cin > > orders[i];
}
map < int , char > ret;
for ( int i = 0 ; i < n; i + + ){
ret.insert( pair < int , char > (i, char ( int ( 'A' ) + i)));
}
for ( int i = 0 ; i < m; i + + ){
char c1 = orders[i][ 0 ];
char c2 = orders[i][ 1 ];
map < int , char > :: iterator it1;
map < int , char > :: iterator it2;
for (it1 = ret. begin (); it1 ! = ret. end (); it1 + + ){
if (it1 - > second = = c1) break ;
}
for (it2 = ret. begin (); it2 ! = ret. end (); it2 + + ){
if (it2 - > second = = c2) break ;
}
// 순서를 바꾸는 경우
if (it1 - > first > it2 - > first){
// it2까지 it1과 다음 iterator의 second를 변경
while (it1 ! = it2 & & it2 ! = ret. end ()){
swap(it2 - > second, next(it2, 1 ) - > second);
it2 + + ;
}
}
}
for ( int i = 0 ; i < n;i + + ) cout < < ret[i];
return 0 ;
}
from http://nooblette.tistory.com/268 by ccl(A) rewrite - 2021-10-23 13:01:44