题目地址:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=98&problem=1361&mosmsg=Submission+received+with+ID+11590304
题目比较简单,只需统计国家名,人名不用care。分别用java和c写了下,都AC了。
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class Uva10420 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin = new Scanner(System.in);
int n;
Map<String, Integer> countries = new TreeMap<String, Integer>();
n = cin.nextInt();
while (n-- > 0) {
String country = cin.next();
if (!countries.containsKey(country)) {
countries.put(country, 1);
}
else
{
countries.put(country, countries.get(country)+1);
}
cin.nextLine();
}
for(String each:countries.keySet())
{
System.out.println(each+" "+countries.get(each));
}
}
}
/*
* uva10420.cpp
*
* Created on: 2013-4-11
* Author: kevinjiang
*/
#include<cstdio>
#include<cstdlib>
#include<cstring>
char countries[2005][80];
char noUse[80];
int cmp(const void *a, const void *b) {
return strcmp((char*) a, (char*) b);
}
int main() {
int n;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%s", countries[i]);
gets(noUse);
}
//sort
qsort(countries, n, sizeof(countries[0]), cmp);
int count=1;
for (int i = 0; i < n; i++) {
if (strcmp(countries[i], countries[i + 1]) == 0) {
count++;
}
else
{
printf("%s %d\n",countries[i],count);
count=1;
}
}
return 0;
}