fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. typedef struct {
  6. int ano;
  7. char uf_ies[3];
  8. char regiao_ies[20];
  9. char ies[50];
  10. char natureza_ies[20];
  11. char area_conhecimento[50];
  12. char nivel_bolsa[20];
  13. int total_bolsas;
  14. } bolsa;
  15.  
  16. typedef struct {
  17. char instituicao_ies[50];
  18. int total_bolsas_ies;
  19. int total_registros;
  20. } IES;
  21.  
  22. typedef struct {
  23. char regiao[20];
  24. int total_bolsas_regiao;
  25. } regiao;
  26.  
  27. IES achar_maiorIES(bolsa *bolsas, int num) {
  28. IES *ies = (IES *)malloc(num * sizeof(IES));
  29. if (ies == NULL) {
  30. exit(1);
  31. }
  32.  
  33. int cont_ies = 0;
  34.  
  35. for (int i = 0; i < num; i++) {
  36. int encontrou = 0;
  37. for (int j = 0; j < cont_ies; j++) {
  38. if (strcmp(ies[j].instituicao_ies, bolsas[i].ies) == 0) {
  39. ies[j].total_bolsas_ies += bolsas[i].total_bolsas;
  40. ies[j].total_registros++;
  41. encontrou = 1;
  42. }
  43. }
  44. if (!encontrou) {
  45. strcpy(ies[cont_ies].instituicao_ies, bolsas[i].ies);
  46. ies[cont_ies].total_bolsas_ies = bolsas[i].total_bolsas;
  47. ies[cont_ies].total_registros = 1;
  48. cont_ies++;
  49. }
  50. }
  51.  
  52. IES maior = ies[0];
  53. for (int i = 1; i < cont_ies; i++) {
  54. if (ies[i].total_bolsas_ies > maior.total_bolsas_ies ||
  55. (ies[i].total_bolsas_ies == maior.total_bolsas_ies && ies[i].total_registros > maior.total_registros)) {
  56. maior = ies[i];
  57. }
  58. }
  59.  
  60. free(ies);
  61. return maior;
  62. }
  63.  
  64. void ordenar_regioes(regiao *regioes, int cont_regioes) {
  65. for (int i = 0; i < cont_regioes - 1; i++) {
  66. for (int j = i + 1; j < cont_regioes; j++) {
  67. if (strcmp(regioes[i].regiao, regioes[j].regiao) > 0) {
  68. regiao temp = regioes[i];
  69. regioes[i] = regioes[j];
  70. regioes[j] = temp;
  71. }
  72. }
  73. }
  74. }
  75.  
  76. void calc_bolsas_regioes(bolsa *bolsas, int total_info) {
  77. regiao *regioes = (regiao *)malloc(total_info * sizeof(regiao));
  78. if (regioes == NULL) {
  79. exit(1);
  80. }
  81.  
  82. int cont_regioes = 0;
  83.  
  84. for (int i = 0; i < total_info; i++) {
  85. int encontrou = 0;
  86. for (int j = 0; j < cont_regioes; j++) {
  87. if (strcmp(regioes[j].regiao, bolsas[i].regiao_ies) == 0) {
  88. regioes[j].total_bolsas_regiao += bolsas[i].total_bolsas;
  89. encontrou = 1;
  90. }
  91. }
  92. if (!encontrou) {
  93. strcpy(regioes[cont_regioes].regiao, bolsas[i].regiao_ies);
  94. regioes[cont_regioes].total_bolsas_regiao = bolsas[i].total_bolsas;
  95. cont_regioes++;
  96. }
  97. }
  98.  
  99. ordenar_regioes(regioes, cont_regioes);
  100.  
  101. for (int i = 0; i < cont_regioes; i++) {
  102. printf("%s: %d\n", regioes[i].regiao, regioes[i].total_bolsas_regiao);
  103. }
  104.  
  105. free(regioes);
  106. }
  107.  
  108. int main() {
  109. int total_info;
  110. scanf("%d", &total_info);
  111. if (total_info < 10 || total_info > 3000) {
  112. return 1;
  113. }
  114.  
  115. bolsa *bolsas = (bolsa *)malloc(total_info * sizeof(bolsa));
  116. if (bolsas == NULL) {
  117. return 1;
  118. }
  119.  
  120. for (int i = 0; i < total_info; i++) {
  121. scanf("%d %2s %19s %49s %19s %49s %19s %d",
  122. &bolsas[i].ano, bolsas[i].uf_ies, bolsas[i].regiao_ies, bolsas[i].ies,
  123. bolsas[i].natureza_ies, bolsas[i].area_conhecimento, bolsas[i].nivel_bolsa, &bolsas[i].total_bolsas);
  124. }
  125.  
  126. IES maiorIES = achar_maiorIES(bolsas, total_info);
  127. printf("IES com maior numero de bolsas: %s\n", maiorIES.instituicao_ies);
  128.  
  129. calc_bolsas_regioes(bolsas, total_info);
  130.  
  131. free(bolsas);
  132. return 0;
  133. }
  134.  
Success #stdin #stdout 0s 5292KB
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: 
: 0
SUDESTE: 0