能公布第二题的测试数据吗 实在看不出错在哪
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class Main {
class Friend{
public String name;
public List<String> partner;
public int money;
public int nowMoney;
public Friend(String name){
this.name = name;
}
}
public void process(){
Scanner scan = new Scanner(System.in);
int amount = scan.nextInt();
Friend[] friends = new Friend[amount];
//who give me money
Map<String,List<Friend>> map = new HashMap<String,List<Friend>>();
Map<String,Integer> nameToIndex = new HashMap<String,Integer>();
scan.nextLine();
for(int i = 0; i < friends.length;i++){
String name = scan.nextLine();
map.put(name, new LinkedList<Friend>());
nameToIndex.put(name, i);
friends[i] = new Friend(name);
}
for(int i = 0; i < friends.length;i++){
String name = scan.nextLine();
int index = nameToIndex.get(name);
int money = scan.nextInt();
int friendsAmount = scan.nextInt();
scan.nextLine();
List<String> friendsList = new LinkedList<String>();
for(int k = 0; k < friendsAmount;k++){
String temp = scan.nextLine();
if(map.containsKey(temp)){
map.get(temp).add(friends[index]);
}
friendsList.add(temp);
}
friends[index].money = money;
friends[index].partner = friendsList;
}
func(friends,map);
scan.close();
}
private void func(Friend[] friends, Map<String, List<Friend>> map) {
for(Friend per:friends){
int recieve = getFromFriends(map.get(per.name));
if(per.partner.size()!=0){
per.nowMoney = recieve + per.money%per.partner.size();
}
else{
per.nowMoney = recieve + per.money;
}
}
for(Friend per:friends){
System.out.println(per.name+" "+(per.nowMoney-per.money));
}
}
private int getFromFriends(List<Friend> list) {
int sum = 0;
for(Friend per:list){
sum += per.money / per.partner.size();
}
return sum;
}
public static void main(String[] args){
Main m = new Main();
m.process();
}
}
#import <Foundation/Foundation.h> int main(int argc,char * argv[]) { NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init]; NSMutableArray *arr = [NSMutableArray new]; int T; scanf("%d",&T); for (int i = 0 ; i < T; i++) { char str[100000]; if(scanf("%s",str)!=EOF) { NSString *str1 = [NSString stringWithFormat:@"%s",str]; [arr addObject:str1]; } } for (int i = 0 ; i < T; i++){ NSString *temp = [NSString stringWithFormat:@"%@",arr[i]]; NSString *str2=[NSString new]; char firstStr = [temp characterAtIndex:0]; if (firstStr == '-' || firstStr == '+' ) { str2=[temp stringByReplacingOccurrencesOfString:@"-" withString:@"__"]; str2=[str2 stringByReplacingOccurrencesOfString:@"+" withString:@"/\\"]; } else { str2=[temp stringByReplacingOccurrencesOfString:@"__" withString:@"-"]; str2=[str2 stringByReplacingOccurrencesOfString:@"/\\" withString:@"+"]; } NSLog(@"%@\n",str2); } [pool drain]; return 0; } 为什么我这个在本地正确,在这里调试后说输出结果不正确
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
int n=scanner.nextInt();
scanner.nextLine();
Map<String, Integer> map=new HashMap<String, Integer>();
for(int i=0;i<n;i++){
String name=scanner.nextLine();
map.put(name, 0);
}
for(int i=0;i<n;i++){
String name=scanner.next();
int mi=scanner.nextInt();//每个人的钱数,用来法红包
int ki=scanner.nextInt();
int money=0;
if(ki!=0){
int t=mi%ki;
money=(mi-t)/ki;
map.put(name, mi%ki+map.get(name)-mi);
}
for(int j=0;j<ki;j++){
String tname=scanner.next();
map.put(tname,(map.get(tname)+money));
}
}
for(Map.Entry<String, Integer> entry:map.entrySet()){
System.out.println(entry.getKey()+" "+entry.getValue());
}
scanner.close();
}
}
说只通过40%的测试数据,我错在哪里了?