fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct {
  6. char nome[50];
  7. int total_bolsas;
  8. int total_programas;
  9. } IES;
  10.  
  11. typedef struct {
  12. char nome[20];
  13. int total_bolsas;
  14. } Regiao;
  15.  
  16. typedef struct {
  17. int ano;
  18. char uf[3];
  19. char regiao[20];
  20. char ies[50];
  21. char natureza[20];
  22. char area[50];
  23. char nivel[20];
  24. int total_bolsas;
  25. } Bolsa;
  26.  
  27. IES encontrar_maior_ies(Bolsa *dados, int total) {
  28. IES *lista = (IES *)malloc(total * sizeof(IES));
  29. int cont_ies = 0;
  30.  
  31. for (int i = 0; i < total; i++) {
  32. int j = 0, encontrou = 0;
  33. while (j < cont_ies) {
  34. if (strcmp(lista[j].nome, dados[i].ies) == 0) {
  35. lista[j].total_bolsas += dados[i].total_bolsas;
  36. lista[j].total_programas++;
  37. encontrou = 1;
  38. }
  39. j++;
  40. }
  41. if (!encontrou) {
  42. strcpy(lista[cont_ies].nome, dados[i].ies);
  43. lista[cont_ies].total_bolsas = dados[i].total_bolsas;
  44. lista[cont_ies].total_programas = 1;
  45. cont_ies++;
  46. }
  47. }
  48.  
  49. IES maior = lista[0];
  50. int i = 1;
  51. while (i < cont_ies) {
  52. if (lista[i].total_bolsas > maior.total_bolsas ||
  53. (lista[i].total_bolsas == maior.total_bolsas && lista[i].total_programas > maior.total_programas)) {
  54. maior = lista[i];
  55. }
  56. i++;
  57. }
  58.  
  59. free(lista);
  60. return maior;
  61. }
  62.  
  63. int calcular_bolsas_sudeste(Bolsa *dados, int total) {
  64. int total_sudeste = 0;
  65. int i = 0;
  66. while (i < total) {
  67. if (strcmp(dados[i].regiao, "SUDESTE") == 0) {
  68. total_sudeste += dados[i].total_bolsas;
  69. }
  70. i++;
  71. }
  72. return total_sudeste;
  73. }
  74.  
  75. int main() {
  76. int total;
  77. scanf("%d", &total);
  78. if (total < 10 || total > 3000) {
  79. return 1;
  80. }
  81.  
  82. Bolsa *dados = (Bolsa *)malloc(total * sizeof(Bolsa));
  83. if (dados == NULL) {
  84. return 1;
  85. }
  86.  
  87. int i = 0;
  88. while (i < total) {
  89. scanf("%d %2s %19s %49s %19s %49s %19s %d",
  90. &dados[i].ano, dados[i].uf, dados[i].regiao, dados[i].ies,
  91. dados[i].natureza, dados[i].area, dados[i].nivel, &dados[i].total_bolsas);
  92. i++;
  93. }
  94.  
  95. IES maior_ies = encontrar_maior_ies(dados, total);
  96. printf("IES com maior numero de bolsas: %s\n", maior_ies.nome);
  97.  
  98. int total_sudeste = calcular_bolsas_sudeste(dados, total);
  99. printf("SUDESTE: %d\n", total_sudeste);
  100.  
  101. free(dados);
  102. return 0;
  103. }
  104.  
Success #stdin #stdout 0.01s 5256KB
stdin
43
2016
MG
SUDESTE
PUC/MG
PARTICULAR
ADMINISTRAÇÃO DE EMPRESAS
MESTRADO
6
2016
MG
SUDESTE
UFLA
FEDERAL
AGRONOMIA
DOUTORADO
20
2016
MG
SUDESTE
UFLA
FEDERAL
AGRONOMIA
DOUTORADO
14
2016
MG
SUDESTE
UFLA
FEDERAL
AGRONOMIA
MESTRADO
13
2016
MG
SUDESTE
UFLA
FEDERAL
AGRONOMIA
DOUTORADO
6
2016
MG
SUDESTE
UFLA
FEDERAL
AGRONOMIA
PÓS-DOUTORADO
6
2016
MG
SUDESTE
UFJF
FEDERAL
ARQUITETURA E URBANISMO
MESTRADO
13
2016
MG
SUDESTE
UFJF
FEDERAL
CLÍNICA MÉDICA
DOUTORADO
13
2016
MG
SUDESTE
UFJF
FEDERAL
CLÍNICA MÉDICA
MESTRADO
6
2016
MG
SUDESTE
PUC/MG
PARTICULAR
DIREITO
DOUTORADO
20
2016
MG
SUDESTE
UFJF
FEDERAL
ECOLOGIA
DOUTORADO
14
2016
MG
SUDESTE
UFLA
FEDERAL
ECOLOGIA APLICADA
MESTRADO
17
2016
MG
SUDESTE
UFJF
FEDERAL
EDUCAÇÃO
MESTRADO
13
2016
MG
SUDESTE
UEMG
ESTADUAL
EDUCAÇÃO
MESTRADO
6
2016
MG
SUDESTE
PUC/MG
PARTICULAR
EDUCAÇÃO
DOUTORADO
7
2016
MG
SUDESTE
UFJF
FEDERAL
ENFERMAGEM
MESTRADO
6
2016
MG
SUDESTE
UFLA
FEDERAL
ENGENHARIA DE ÁGUA E SOLO
DOUTORADO
17
2016
MG
SUDESTE
UFLA
FEDERAL
ENGENHARIA DE ÁGUA E SOLO
MESTRADO
7
2016
MG
SUDESTE
UFJF
FEDERAL
ENGENHARIA ELÉTRICA
DOUTORADO
20
2016
MG
SUDESTE
UFJF
FEDERAL
ENGENHARIA ELÉTRICA
MESTRADO
20
2016
MG
SUDESTE
PUC/MG
PARTICULAR
ENGENHARIA ELÉTRICA
MESTRADO
14
2016
MG
SUDESTE
ITV MI
PARTICULAR
ENGENHARIA ELÉTRICA
MESTRADO
7
2016
MG
SUDESTE
INATEL
PARTICULAR
ENGENHARIA ELÉTRICA
MESTRADO
13
2016
MG
SUDESTE
PUC/MG
PARTICULAR
ENGENHARIA MECÂNICA
DOUTORADO
17
2016
MG
SUDESTE
PUC/MG
PARTICULAR
ENGENHARIA MECÂNICA
MESTRADO
14
2016
MG
SUDESTE
UFJF
FEDERAL
FÍSICA
MESTRADO
17
2016
MG
SUDESTE
UFLA
FEDERAL
FITOPATOLOGIA
DOUTORADO
19
2016
MG
SUDESTE
UFLA
FEDERAL
FITOTECNIA
PÓS-DOUTORADO
13
2016
MG
SUDESTE
PUC/MG
PARTICULAR
GEOGRAFIA
DOUTORADO
20
2016
MG
SUDESTE
PUC/MG
PARTICULAR
GEOGRAFIA
MESTRADO
20
2016
MG
SUDESTE
UFJF
FEDERAL
LETRAS
MESTRADO
13
2016
MG
SUDESTE
PUC/MG
PARTICULAR
LETRAS
MESTRADO
20
2016
MG
SUDESTE
UFJF
FEDERAL
MATEMÁTICA
MESTRADO
17
2016
MG
SUDESTE
UFLA
FEDERAL
MEDICINA VETERINÁRIA
DOUTORADO
20
2016
MG
SUDESTE
UFJF
FEDERAL
ODONTOLOGIA
MESTRADO
13
2016
MG
SUDESTE
UFJF
FEDERAL
PSICOLOGIA
MESTRADO
20
2016
MG
SUDESTE
PUC/MG
PARTICULAR
PSICOLOGIA
MESTRADO
7
2016
MG
SUDESTE
UFLA
FEDERAL
RECURSOS FLORESTAIS E ENGENHARIA FLORESTAL
DOUTORADO
19
2016
MG
SUDESTE
UFLA
FEDERAL
RECURSOS FLORESTAIS E ENGENHARIA FLORESTAL
MESTRADO
17
2016
MG
SUDESTE
UFJF
FEDERAL
SERVIÇO SOCIAL
MESTRADO
7
2016
MG
SUDESTE
PUC/MG
PARTICULAR
SOCIOLOGIA
DOUTORADO
14
2016
MG
SUDESTE
PUC/MG
PARTICULAR
ZOOLOGIA
MESTRADO
19
2016
MG
SUDESTE
UFLA
FEDERAL
ZOOTECNIA
MESTRADO
17
stdout
IES com maior numero de bolsas: 
SUDESTE: 0