Test

#include <iostream>
#include <cstring>
#include <stdio.h>
using namespace std;

char str[200001];
char cc[101];
int k;
int letter[26][200001];
int n;
int len;

void search(int p, int c) {
     int i, j;
     for (i = 0; p > letter[c][i]; i++)
      p -= letter[c][i];
     letter[c][i]--;

     for (j = len*i; p > 0; j++)
      if (str[j] == 'a'+c)
           p--;
     str[j-1] = 0;
}

int main() {
     scanf("%d %s", &k, cc);

     len = strlen(cc);
     for (int i = 0; i < len; i++)
      letter[cc[i]-'a'][0]++;
     for (int i = 1; i < k; i++)
      for (int j = 0; j < 26; j++)
           letter[j][i] = letter[j][0];
     // printf("...\n");
     for (int i = 0; i < k; i++)
      strcpy(str+i*len, cc);
     // printf("%s\n", str);
     int p;
     char c;
     scanf("%d", &n);
     for (int i = 0; i < n; i++) {
      scanf("%d %c", &p, &c);
      search(p, c-'a');
     }
     for (int i = 0; i < len * k; i++)
      if (str[i] != 0)
           printf("%c", str[i]);
     printf("\n");
    
     return 0;
}
posted @ 2012-03-19 12:17  SkyHacker  阅读(291)  评论(0编辑  收藏  举报