-
-
Notifications
You must be signed in to change notification settings - Fork 50.9k
Added TrashBin Problem #5823
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
Closed
Added TrashBin Problem #5823
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| # Problem :--- | ||
| # In the city where you live, there is one particularly long street with N houses on it. This street has length N, and the N houses are evenly placed along it, that is, the first house is at position 1, the second house is at position 2, and so on. The distance between any pair of houses i and j is |i−j|, where |x| denotes the absolute value of x. | ||
| # Some of these houses have trash bins in front of them. That means that the owners of such houses do not have to walk when they want to take their trash out. However, for the owners of houses that do not have trash bins in front of them, they have to walk towards some house that has a trash bin in front of it, either to the left or to the right of their own house. | ||
| # To save time, every house owner always takes their trash out to the trash bin that is closest to their houses. If there are two trash bins that are both the closest to a house, then the house owner can walk to any of them. | ||
| # Given the number of houses N, and the description of which of these houses have trash bins in front of them, find out what is the sum of the distances that each house owner has to walk to take their trashes out. You can assume that at least one house has a trash bin in front of it. | ||
| # Input | ||
| # # The first line of the input gives the number of test cases, T. T test cases follow. Each test case consists of two lines. | ||
| # The first line of each test case contains an integer N, denoting the number of houses on the street. | ||
| # The second line of each test case contains a string S of length N, representing which houses have trash bins in front of them. If the i-th character in string S is equal to 1, then it means that the i-th house has a trash bin in front of it. Otherwise, if it is equal to 0, then it means that the i-th house does not have a trash bin in front of it. | ||
| # Output | ||
| # For each test case, output one line containing Case #x: y, where x is the test case number (starting from 1) and y is the sum of the distances that each house owner has to walk to take their trashes out. | ||
| tc = ['101110', '100010'] | ||
|
|
||
| def search(ss : str) -> list: | ||
| c = 0 | ||
| loc = [] | ||
| for i in ss: | ||
| if i == "1": | ||
| loc.append(c) | ||
| c += 1 | ||
| return loc | ||
|
|
||
| def solve(p : str) -> int: | ||
|
patrick-steve marked this conversation as resolved.
|
||
| sl = int(p) | ||
| st = p | ||
| tbl = search(st) | ||
| td = 0 | ||
| idex = 0 | ||
| for i in st: | ||
| if i == "0": | ||
| min = abs(idex-tbl[0]) | ||
| for p in tbl: | ||
| if abs(idex-p) < min: | ||
| min = abs(idex-p) | ||
| print(min) | ||
| td += min | ||
| idex += 1 | ||
| return td | ||
|
|
||
|
|
||
|
|
||
| for i in tc: | ||
| print("Case #"+str(i+1)+": "+str(solve(i))) | ||
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.