Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- LANG: C
- TASK: company
- */
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 400000
- int N, head[MAX], r_m[MAX], r_f[MAX];
- char sex[MAX];
- int main() {
- FILE *file;
- int i, j, D;
- file = fopen("company.in", "r");
- fscanf(file, "%d\n", &N);
- for (i=0; i<N; ++i)
- fscanf(file, "%d %c\n", &head[i], &sex[i]);
- fclose(file);
- D=0;
- for (i=0; i<N; ++i) {
- r_m[i]=0;
- r_f[i]=0;
- for (j=head[i]-1; j>=0; j=head[j]-1) {
- (sex[j] == 'm')? ++r_m[i] : ++r_f[i];
- if (j<i) {
- r_m[i] += r_m[j];
- r_f[i] += r_f[j];
- break;
- }
- }
- if (sex[i] == 'm')
- D -= r_f[i];
- else
- D += r_m[i];
- }
- file = fopen("company.out", "w");
- fprintf(file, "%d\n", D);
- fclose(file);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment