2016년 5월 10일 화요일

7808 - Email from The Professor

https://www.acmicpc.net/problem/7808

문자열을 n개만큼 한 줄씩 잘라서 각 칸마다 대응되는 key를 새로운 줄로 삼는 문제이다.
vector로 각 문자를 대응되는 줄(key)에 차곡차곡 붙였다.
마지막엔 각 줄을 일렬로 다시 출력했다.


#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;

int main(){
    char s[1024];
    while(gets(s) != NULL){
        int n, col[1001];
        scanf(" %d", &n);
        for(int i=0; i<n; ++i) scanf("%d ", &col[i]);
        int len = strlen(s);
        vector<char> v[n];
        for(int i=0; i<len; ++i){
            v[col[i%n]-1].push_back(s[i]);
        }
        for(int i=0; i<n; ++i){
            for(int j=0; j<v[i].size(); ++j) if(v[i][j]) putchar(v[i][j]);
        }
        puts("");
    }
    return 0;
}

댓글 없음:

게시글 목록