Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct tagCromos {
- int inf;
- int sup;
- };
- int compfunc(const void *i1, const void *i2);
- int cromosf[2000000];
- int main() {
- struct tagCromos cromos[100000];
- int i, idx, aux, idx2, idx3;
- i = idx = aux = 0;
- scanf("%d", &i);
- aux = i;
- while( i > 0 ) {
- scanf("%d %d", &cromos[idx].inf, &cromos[idx].sup);
- idx++;
- i--;
- }
- qsort(cromos, aux, sizeof(struct tagCromos), compfunc);
- for(idx=0, idx2=0, idx3=0; idx2 < aux ; idx2++) {
- if( idx2 != 0 ) {
- if( cromos[idx2].inf > cromos[idx2-1].sup ) {
- idx += cromos[idx2].sup - cromos[idx2].inf;
- continue;
- }
- if( cromos[idx2].sup > cromos[idx2-1].sup ) {
- cromos[idx2].inf = cromos[idx2-1].sup;
- idx += cromos[idx2].sup - cromos[idx2].inf;
- }
- }
- else {
- idx += cromos[idx3].sup - cromos[idx3].inf;
- idx++;
- }
- }
- printf("%d\n", idx);
- return 0;
- }
- int compfunc(const void *i1, const void *i2) {
- struct tagCromos *a = (struct tagCromos *)i1;
- struct tagCromos *b = (struct tagCromos *)i2;
- if( a->inf != b->sup )
- return a->inf - b->inf;
- else
- return a->sup - b->sup;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement