Κώδικας: Επιλογή όλων
1. #include <stdio.h>
2.
3. #define FINAL_SOLOUTION
4.
5. #ifndef FINAL_SOLOUTION
6. #define CLOCK_COUNT
7. #include <conio.h>
8. #include <time.h>
9. #endif
10.
11. #ifndef FINAL_SOLOUTION
12. #define N_FINAL_SOL
13.
14. #endif
15.
16.
17. //#define BRUTE_FORCE
18. #define FAST_SOL
19.
20. FILE *fin;
21. FILE *fout;
22.
23.
24. int N;
25. int timi_meras[1000000];
26.
27. float result = 0.0f;
28.
29. float brute_force_soloution();
30. float fast_soloution();
31.
32. int main()
33. {
34. #ifdef CLOCK_COUNT
35. printf("CLOCK START TIME: %d\n=============================================\n",clock());
36. #endif
37.
38.
39. fin = fopen("profit.in","r");
40. fscanf(fin,"%d",&N);
41.
42. for(int i=0;i<N;i++)
43. {
44. fscanf(fin,"%d",&timi_meras[i]);
45. }
46.
47.
48. #ifdef BRUTE_FORCE
49. result = brute_force_soloution();
50. #endif
51. #ifdef FAST_SOL
52. result = fast_soloution();
53. #endif
54.
55.
56. #ifdef N_FINAL_SOL
57. printf("To arxeio eksodou einai: \n%.3f\n",result);
58. #endif
59.
60. #ifdef FINAL_SOLOUTION
61. fout = fopen("profit.out","w+");
62. fprintf(fout,"%.3f\n",result);
63. fclose(fout);
64. #endif
65.
66. fclose(fin);
67.
68. #ifdef CLOCK_COUNT
69. printf("\n=============================================\nCLOCK END TIME: %d\n=============================================",clock());
70. #endif
71.
72. #ifdef N_FINAL_SOL
73. getch();
74. #endif
75. return 0;
76. }
77.
78.
79.
80.
81. float brute_force_soloution()
82. {
83. float max_sol = 1.0f;
84.
85. int i=0,i2=0;
86. for(i=0;i<N;i++)
87. for(i2=i+1;i2<N;i2++)
88. if(max_sol < (float) ((float)timi_meras[i2] / (float) timi_meras[i]))
89. max_sol = (float)timi_meras[i2] / (float)timi_meras[i];
90.
91. //printf("\n===============================================\nMax_sol: %.3f\n",max_sol);
92.
93.
94. return max_sol;
95. }
96.
97. float fast_soloution()
98. {
99. float max_sol = 1.0f;
100.
101. int i;
102. int lowest_price = timi_meras[0];
103. for(i=0;i<N;i++)
104. {
105. if(lowest_price > timi_meras[i])
106. lowest_price = timi_meras[i];
107. if(max_sol < (float)timi_meras[i] / (float)lowest_price)
108. max_sol = (float)timi_meras[i] / (float)lowest_price;
109. }
110.
111. return max_sol;
112. }
Απο το hellenico...
Oooo, τελικά δεν είχα βγάλει τα περιτά!!! Ελπίζω να μην το πληρώσω...
Ήταν όταν είχα ξαναγράψει τη λύση μου σε Visual Studio... Τι το ήθελα και την πόσταρα...
Ευτιχώς βγάζει σωστά αποτελέσματα...