Wednesday, November 16, 2016

URI Solution 1120 Contract Revision in C++ Language

URI Online Judge | 1120

Contract Revision

Maratona de Programação da SBC  Brasil
Timelimit: 1
For years, all contracts of the Association of Contracts for Modernization (ACM) were typed using an old typewriter machine.

Recently Mr. Miranda, one of the accountants of the ACM, realized that the machine had a failure in one, and only one, numerical digit. More specifically, the flawed digit, when typed, is not printed on the sheet, as if the corresponding key was not pressed. He realized that this could have changed the numerical representation of contract values. Worried about accounting, Mr. Miranda wants to know, from the original values agreed for the contracts (which he kept in handwritten notes) which values are actually represented in the contracts. For example, if the failed digit in the machine is 5, an agreed value of 1500 would be represented in the corresponding contract as 100, because the digit 5 would not be printed. Note that Mr. Miranda wants to know the numeric value represented in the contract, ie, in the same machine, the number 5000 corresponds to the numeric value 0, not 000 (as it actually appears in the contract).

Input

The input consists of several test cases, each in one line. Each line contains two integersD and N (1 ≤ D ≤ 9, 1 ≤ N < 10100 ), representing, respectively, the digit that has failed in the machine and the number that was originally agreed for the contract (which can be very large because of hiperinflation).

The last test case is followed by a line which contains only two zeros separated by white space.

Output

For each test case in the input your program must print one line containing a single integer, the numeric value represented in the contract.
Input SampleOutput Sample
5 5000000
3 123456
9 23454324543423
9 99999999991999999
7 777
0 0
0
12456
23454324543423
1
0

URI Solution 1120 Contract Revision in C++ Language


#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
 
int main()
{
    int n, tmp;
    char d;
    string s;
 
    while(getline(cin, s))
    {
        if(s.compare("0 0") == 0)
            return 0;
 
        d = s[0];
        s.erase (0,2);
        tmp = s.size();
        s.erase(remove(s.begin(), s.begin() + tmp, d), s.end());
 
        while(s[0] == '0')
        {
            if(s.size() == 1)
                break;
 
            s.erase (0,1);
        }
 
        if(s.size() == 0){
            cout << 0 << '\n';
        }else{
            cout << s << '\n';
        }
    }
 
    return 0;
}

To Download URI Solution 1120 Contract Revision in C++ Language Click Here

1 comment:
Write comments
  1. s.erase(remove(s.begin(), s.begin() + tmp, d), s.end());

    what in the world is this ^^ :S

    ReplyDelete

To know more about the problem, give us your valuable commment. We'll try to help you. Thanks

All rights reserved ©2016 -URI ONLINE JUDGE SOLUTION | Developed by Maniruzzaman Akash

© 2016 URI ONLINE JUDGE SOLUTION. Developed by Maniruzzaman Akash | Distributed By Gooyaabi Templates
Powered by Blogger.