-
-
Save Youngestdev/a75a3daeeba1bb00514f5e675cdf9466 to your computer and use it in GitHub Desktop.
| T = int(input()) | |
| count = 0 | |
| f = 0 | |
| if T is None or T is 0: | |
| pass | |
| while f < T: | |
| count += 1 | |
| n, b = map(int, input().split()) | |
| c = (input().split()) | |
| c = sorted(c) | |
| ans = 0 | |
| for i in range(n): | |
| if b >= int(c[i]): | |
| ans += 1 | |
| b -= int(c[i]) | |
| print("Case #{}: {}".format(count, ans)) | |
| f += 1 | |
Why are you sorting the array?
Why are you sorting the array?
Makes it easier to quickly get the number of houses. From the solutions I've seen, the array is sorted.
Makes no difference tho. Not sure why it says WA too.
Makes no difference? Have you run the code against the examples ?
Here's a C++ equiv:
#include<bits/stdc++.h>
using namespace std;
int main(){
int t; int x = 1;
cin>>t;
while(t--){
int ans = 0;
int n,b; cin>>n>>b;
int arr[n];
for(int i = 0; i < n; i++) cin>>arr[i];
sort(arr,arr+n);
for(int i = 0; i < n; i++){
if(b-arr[i] >= 0) ans++;
b -= arr[i];
}
cout<<"Case #"<<x<<": "<<ans<<"\n";
x++;
}
}Why are you sorting the array?
Makes it easier to quickly get the number of houses. From the solutions I've seen, the array is sorted.
Yeah I get.
Yup. Can you translate the C++ code above to Python3?
Yes, I can.
Yes, I can.
Cool. Try it & let's see the diff with my code. Then, we can run it and see if it works.
num_test_case = int(input())
count = 1
while num_test_case != 0:
ans = 0
num, amount = map(int, input().split())
houses = []
for i in range(num):
houses.append(int(input()))
for i in range(num):
converted = int(houses[i])
test = amount - converted
if test >= 0:
ans += 1
amount -= converted
print("Case #{}: {}".format(count, ans))
count += 1
num_test_case -= 1
That is what it looks like.
Still not working I don't know why lol.
Done. It works.
num_test_case = int(input())
count = 1
answers = []
while num_test_case != 0:
ans = 0
num, amount = map(int, input().split())
houses = list(map(int, input().split()))
houses.sort()
for i in range(num):
test = amount - houses[i]
if test >= 0:
ans += 1
amount -= houses[i]
else:
break
print('Case #{}: {}'.format(count, ans))
count += 1
num_test_case -= 1
Turns out I didn't make the houses an array uhm.
Dr. Patel has N stacks of plates. Each stack contains K plates. Each plate has a positive beauty value, describing how beautiful it looks.
Dr. Patel would like to take exactly P plates to use for dinner tonight. If he would like to take a plate in a stack, he must also take all of the plates above it in that stack as well.
Help Dr. Patel pick the P plates that would maximize the total sum of beauty values.
Input
The first line of the input gives the number of test cases, T. T test cases follow. Each test case begins with a line containing the three integers N, K and P. Then, N lines follow. The i-th line contains K integers, describing the beauty values of each stack of plates from top to bottom.
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 maximum total sum of beauty values that Dr. Patel could pick.
Limits
Time limit: 20 seconds per test set.
Memory limit: 1GB.
1 ≤ T ≤ 100.
1 ≤ K ≤ 30.
1 ≤ P ≤ N * K.
The beauty values are between 1 and 100, inclusive.
Test set 1
1 ≤ N ≤ 3.
Test set 2
1 ≤ N ≤ 50.
Input | Output
-- | --
2
2 4 5
10 10 100 30
80 50 10 50
3 2 3
80 80
15 50
20 10
| Case #1: 250 Case #2: 180
This is a knapsack problem.
Yeah. I no sabi am 😂
I still have a long way to go with competitive programming. I already started a course today sef.
Oh, where? I no sabi C++ but then Python is too slow for competitive programming.
What language do you intend to use? We might learn - I remember we planned to jump into it together lol
Alright.