Language: Java

import java.util.*;
import java.io.*;

 class Main{




   public static long func(long weight[], long value[], long total, long weightnow, int index, int n, long dp[][] )
   { 
       
       if(index>=n)
       {
           return 0;
       }
       
       if(dp[index][weightnow]!=-1)
       {
           return dp[index][weightnow];
       }
       long sum=0l;
     //  int sum1=0;
    long ans =0l;
       
           if(weightnow+weight[index]>total)
           {  //System.out.println("weight"+weightnow+" "+weight[i]);
              // sum1+=func(weight,value,total,weightnow,i+1,n);
             sum=  func(weight,value,total,weightnow,index+1,n,dp);
           }
           else{
               ans=value[index]+func(weight,value,total,weightnow+weight[index],index+1,n,dp);
               long val1=func(weight,value,total,weightnow,index+1,n,dp);
               ans=Math.max(val1,ans);
           }
          
         ans=Math.max(ans,sum);
       
       dp[index][weightnow]=ans;
       return ans ;
   }
   
     public static void main(String []args) throws Exception{
        //System.out.println("Hello World");
        BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
        String s =br.readLine();
       String ss[]=s.split(" ");
       long total=Integer.parseLong(ss[1]);
       int n =Integer.parseInt(ss[0]);
       long weight[]=new long[n];
       long value[]=new long[n];
       String temp;
       String tempo[];
        for(int i=0;i<n;i++)
        {
         temp=br.readLine();
         tempo=temp.split(" ");
         weight[i]=Integer.parseLong(tempo[0]);
         value[i]=Long.parseLong(tempo[1]);
        }
        
        
        
    long  sum=0l;
        
     long weightnow=0l;
        
      long dp[][]=new long[n][total+1];
        long ans =0l;
        for(int y=0;y<n;y++)
        {
            Arrays.fill(dp[y],-1);
        }
        int i=0;
        long val=0l;
            if(weight[i]>total)
           {
            val=func(weight,value,total,weightnow,i+1,n,dp);
            ans =Math.max(ans , val);  
           }
           else{
             val=value[i]+func(weight,value,total,weightnow+weight[i],i+1,n,dp);
             long val1=func(weight,value,total,weightnow,i+1,n,dp);
               val=Math.max(val1,val);
               ans =Math.max(ans , val);  
           }
           // System.out.println(val);
           //ans =Math.max(ans , val);    
            
        
        
        System.out.println(ans);
        
        
        
        
     }
}

Compiler output:
Main.java:17: error: incompatible types: possible lossy conversion from long to int
       if(dp[index][weightnow]!=-1)
                    ^
Main.java:19: error: incompatible types: possible lossy conversion from long to int
           return dp[index][weightnow];
                            ^
Main.java:38: error: incompatible types: possible lossy conversion from long to int
       dp[index][weightnow]=ans;
                 ^
Main.java:47: error: cannot find symbol
       long total=Integer.parseLong(ss[1]);
                         ^
  symbol:   method parseLong(String)
  location: class Integer
Main.java:57: error: cannot find symbol
         weight[i]=Integer.parseLong(tempo[0]);
                          ^
  symbol:   method parseLong(String)
  location: class Integer
Main.java:67: error: incompatible types: possible lossy conversion from long to int
      long dp[][]=new long[n][total+1];
                                   ^
6 errors