Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import std.stdio, std.algorithm, std.array, std.string, std.conv, std.format;
- void main() {
- char letter;
- char[] deck = uninitializedArray!(char[])(50);
- char[] deck_negative;
- char[] deck_positive;
- int minNeg = 0;
- int maxNeg = 0;
- int minPos = 0;
- int maxPos = 0;
- char[] input;
- int[] numbers;
- size_t size = 0;
- size_t size_negative = 0;
- while(readln(input)){
- try{
- formattedRead(input, "%c:%(%d,%)\n",&letter, &numbers);
- }
- catch{
- formattedRead(input, "%c:%(%d,%)",&letter, &numbers);
- }
- for(int i = 0; i < numbers.length; i++){
- if(numbers[i] >= 0){
- if(numbers[i] < minPos){
- minPos = numbers[i];
- }
- if(numbers[i] > maxNeg){
- maxPos = numbers[i];
- }
- if(numbers[i] > deck_positive.length){
- deck_positive.length = numbers[i]+10;
- }
- deck_positive[numbers[i]] = letter;
- }
- else{
- if(-numbers[i] < minNeg){
- minNeg = -numbers[i];
- }
- if(-numbers[i] > maxNeg){
- maxNeg = -numbers[i];
- }
- if(-numbers[i] > deck_negative.length){
- deck_negative.length = -numbers[i]+ 10;
- }
- deck_negative[-numbers[i]] = letter;
- }
- }
- }
- auto app = appender(deck);
- int a = 0;
- try{
- deck_negative = deck_negative[minNeg..maxNeg+1];
- foreach(int i, char c; deck_negative){
- if(c != ' '){
- //app.put(c);
- deck[a] = c;
- a++;
- }
- }
- }
- catch{
- ;
- }
- try{
- deck_positive = deck_positive[minPos..maxPos+1];
- foreach(int i, char c; deck_positive){
- if(c != ' '){
- //app.put(c);
- deck[a] = c;
- a++;
- }
- }
- }
- catch{;}
- //deck.length = size_negative+size;
- foreach(int i, char c; deck){
- if(i > 0){
- write(c);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment