Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int n;
- int *place, *answer;
- int main() {
- FILE *fin = fopen("race.in", "r");
- FILE *fout = fopen("race.out", "w");
- fscanf(fin, "%d", &n);
- place = (int*) malloc(sizeof(int) * n);
- answer = (int*) malloc(sizeof(int) * n);
- int i;
- for (i = 0; i < n; i++) {
- fscanf(fin, "%d", place + i);
- place[i]--;
- }
- int cnt = 0;
- int k;
- int m = place[n - 1];
- answer[cnt] = n - 1;
- cnt++;
- for (k = n - 2; k >= 0; k--) {
- if (m == k + 1) {
- answer[cnt++] = k;
- }
- if (place[k] < m)
- m = place[k];
- }
- fprintf(fout, "%d\n", cnt);
- for (i = cnt - 1; i >= 0; i--) {
- fprintf(fout, "%d ", answer[i] + 1);
- }
- fprintf(fout, "\n");
- free(place);
- free(answer);
- fclose(fin);
- fclose(fout);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment