https://www.codechef.com/START112D/problems/NUTRITION

#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

@abhinav_singh1

# 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