Guest User

Untitled

a guest
Sep 5th, 2014
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.78 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int n;
  5. int *place, *answer;
  6.  
  7. int main() {
  8.     FILE *fin = fopen("race.in", "r");
  9.     FILE *fout = fopen("race.out", "w");
  10.  
  11.     fscanf(fin, "%d", &n);
  12.     place = (int*) malloc(sizeof(int) * n);
  13.     answer = (int*) malloc(sizeof(int) * n);
  14.  
  15.     int i;
  16.     for (i = 0; i < n; i++) {
  17.         fscanf(fin, "%d", place + i);
  18.         place[i]--;
  19.     }
  20.  
  21.     int cnt = 0;
  22.     int k;
  23.     int m = place[n - 1];
  24.  
  25.     answer[cnt] = n - 1;
  26.     cnt++;
  27.  
  28.     for (k = n - 2; k >= 0; k--) {
  29.         if (m == k + 1) {
  30.             answer[cnt++] = k;
  31.         }
  32.  
  33.         if (place[k] < m)
  34.             m = place[k];
  35.     }
  36.  
  37.     fprintf(fout, "%d\n", cnt);
  38.  
  39.     for (i = cnt - 1; i >= 0; i--) {
  40.         fprintf(fout, "%d ", answer[i] + 1);
  41.     }
  42.  
  43.     fprintf(fout, "\n");
  44.  
  45.     free(place);
  46.     free(answer);
  47.     fclose(fin);
  48.     fclose(fout);
  49.     return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment