#include <stdio.h>
int main(void) {
int t;
scanf("%d",&t);
while (t--)
{
int n;
scanf("%d",&n);
int a[n] , b[n];
for (int i=0;i<n;++i) scanf("%d",&a[i]);
for (int i=0;i<n;++i) scanf("%d",&b[i]);
int c[100]={0};
int max[100]={0};
for (int i=0;i<n;++i) {
if (b[i]>=max[a[i]]){
c[a[i]]=b[i];
max[a[i]]=b[i];
}
}
int sum=0;
for (int i=0;i<100;++i) {
sum += c[i];
}
printf("%d\n",sum);
}
// your code goes here
return 0;
}
``` What is the wrong answer, and for which test case?
[prbm NUTRITION](https://www.codechef.com/START112D/problems/NUTRITION)
@abhinav_singh1
just a little mistake , i have corrected it in your code
hope u will get it
#include <stdio.h>
int main(void) {
int t;
scanf("%d",&t);
while (t--)
{
int n;
scanf("%d",&n);
int a[n] , b[n];
for (int i=0;i<n;++i) scanf("%d",&a[i]);
for (int i=0;i<n;++i) scanf("%d",&b[i]);
int c[101]={0};
int max[101]={0};
for (int i=0;i<n;++i) {
if (b[i]>=max[a[i]]){
c[a[i]]=b[i];
max[a[i]]=b[i];
}
}
int sum=0;
for (int i=0;i<=100;++i) {
sum += c[i];
}
printf("%d\n",sum);
}
// your code goes here
return 0;
}
1 Like
# cook your dish here
for i in range(int(input())):
n=int(input())
a=list(map(int,input().split()))
b=list(map(int,input().split()))
dic={}
for i in range(n):
if b[i]>0:
if a[i] in dic:
dic[a[i]].append(b[i])
else:
dic[a[i]]=[b[i]]
a=0
for i in dic.values():
a+=max(i)
print(a)
1 Like