How do you solve Usaco Greedy Gift Givers?

1 answer

Answer

1274467

2026-09-06 01:40

+ Follow

Java
Java

/*

ID: isurube1

LANG: Java

TASK: gift1

*/

import Java.io.BufferedReader;

import Java.io.BufferedWriter;

import Java.io.FileReader;

import Java.io.FileWriter;

import Java.io.IOException;

import Java.io.PrintWriter;

public class gift1 {

public static void main(String[] args) {

try{

BufferedReader fileIn = new BufferedReader(new FileReader("gift1.in"));

PrintWriter fileOut = new PrintWriter(new BufferedWriter(new FileWriter("gift1.out")));

try{

int quantity = Integer.parseInt(fileIn.readLine());

String[][] outFile = new String [quantity][2];

for (int i = 0; i < quantity; i++) {

outFile [i][0] = fileIn.readLine();

outFile [i][1] = "0";

}

for (int i = 1; i <= quantity; i++) {

String giver = fileIn.readLine();

String temp = fileIn.readLine();

int money = Integer.parseInt(temp.split(" ")[0]);

int receivers = Integer.parseInt(temp.split(" ")[1]);

int giversValue = 0;

if (money != 0 receivers != 0){

giversValue = (money % receivers) - money;

}

for (int j = 0; j < outFile.length; j++) {

if (outFile[j][0].equals(giver)){

outFile[j][1] = Integer.toString(giversValue + Integer.parseInt(outFile[j][1]));

break;

}

}

if(receivers != 0){

money /= receivers;

for (int j = 1; j <= receivers; j++) {

temp = fileIn.readLine();

for (int k = 0; k < outFile.length; k++) {

if (outFile[k][0].equals(temp)){

outFile[k][1] = Integer.toString(money + Integer.parseInt(outFile[k][1]));

break;

}

}

}

}

}

for (int i = 0; i < outFile.length; i++) {

fileOut.write(outFile[i][0] + " " +outFile[i][1]+"\n");

}

} finally {

fileIn.close();

fileOut.close();

}

} catch (IOException e) {

throw new RuntimeException(e);

}

}

}

ReportLike(0ShareFavorite

Copyright © 2026 eLLeNow.com All Rights Reserved.